Lazarus

Announcements => Third party => Topic started by: balazsszekely on October 05, 2016, 09:33:55 am

Title: Online Package Manager
Post by: balazsszekely on October 05, 2016, 09:33:55 am
Hi,

 I decided to implement the online package manager(opkman). The first alpha version is ready and it works like this: the packages are zipped and stored in a webserver(repository) along with a json file. I chose zip to minimize server load. The json file contains all the necessary info about the packages. Once installed into the IDE, the opkman downloads, then serialize the json file into a package list. The list is  displayed in a tree. On request the packages can be downloaded or/and installed. For now the repository is read-only, it contains only eight, well known(I guess?) packages. The nature/type of the eight package is irrelevant for now, since we are only testing the functionality of the opkman. Few notes:
 
 1. Supported versions: Laz 1.6+(FPC 3.0.0+). I did the implementation/testing with Lazarus trunk(FPC 3.0.0)
 2. Tested under the following widgetsets: Win32/64, GTK2, Carbon
 3. After install, you can find opkman in the "Package" menu
 4. Link: http://wiki.freepascal.org/Online_Package_Manager
 
 Please test! Suggestions are welcome.
 
 PS: Big thanks to @Leledumbo for hosting the repository.
 
regards,
GetMem


Edit: stable != alpha(thanks Graeme) + screenshot added.
Title: Re: Online Package Manager
Post by: Graeme on October 05, 2016, 11:40:36 am
stable(alpha) version

stable and alpha are two opposites of the scale. I had to laugh when I read that. :)

Thanks for sharing, and good luck with the package manager though.
Title: Re: Online Package Manager
Post by: Bostjan on October 05, 2016, 11:57:50 am
Is this to be something like "NuGet" for MS visual studio ? (https://en.wikipedia.org/wiki/NuGet, https://www.nuget.org/)

If so, I think it is really good idea. Worst part of Delphi/Lazarus for me is that you must hunt various packages across the internet and central repository would be so much better.
Title: Re: Online Package Manager
Post by: balazsszekely on October 05, 2016, 03:25:48 pm
Quote
@Graeme
stable and alpha are two opposites of the scale. I had to laugh when I read that.
:D What I meant to say is the first alpha that's stable enough for test, but you're right, it's kinda confusing.  Point taken, I edited my post.

Quote
@Bostjan
Is this to be something like "NuGet" for MS visual studio ? (https://en.wikipedia.org/wiki/NuGet, https://www.nuget.org/)
Yes, something similar.

Quote
Worst part of Delphi/Lazarus for me is that you must hunt various packages across the internet and central repository would be so much better.
I agree 100%.
Title: Re: Online Package Manager
Post by: rvk on October 05, 2016, 04:15:22 pm
Nice work :)

Error in trunk:
Code: [Select]
opkman_mainfrm.pas(129,48) Error: Incompatible types: got "<procedure variable type of procedure(TObject;AnsiString;TErrorType;const AnsiString) of object;Register>" expected "<procedure variable type of procedure(TObject;UTF8String;TErrorType;const AnsiString) of object;Register>"
on
Code: Pascal  [Select][+][-]
  1.   PackageDownloader.OnJSONDownloadCompleted := @DoOnJSONDownloadCompleted;
Making it this works:
Code: Pascal  [Select][+][-]
  1.     procedure DoOnJSONDownloadCompleted(Sender: TObject; AJSON: UTF8String; AErrTyp: TErrorType; const AErrMsg: String = '');
TJSONStringType is an UTF8String in trunk.

Suggestion #1: Making the packages-list more compact. Only expanding when choosing the +

Suggestion #2: Putting the "Online Package Manager" above the "Install/Uninstall packages". I'm very used to be "Install" being the last in that menu :) Although, if this becomes the standard the position at the bottom might be preferred.

Note: The GetIt Package Manager of Delphi resides in the Tools menu. But Delphi doesn't have a dedicated "Packages" menu, only a Component-menu where "Install packages" sits.

Question: What packages will be provided in the end. Will the lazarus-ccr packages/components be added? Now you have the standard packages in the Lazarus distribution, the lazarus-ccr and everything else with separate download via Wiki-links. Maybe all these should be combined.

If these are not combined maybe it should be possible to add multiple "Remote repositories". (That would also allow you to make your own repository in addition to the default ones provided)
Title: Re: Online Package Manager
Post by: Phil on October 05, 2016, 04:38:55 pm
(That would also allow you to make your own repository in addition to the default ones provided)

I would assume this would be the case. That way, a package author only needs to publicize the URL of the package zip. The user types/pastes this URL into the package manager, which does the rest.

I would use a separate .zip for each package. And each .zip would contain its own JSON file for the package. Put a master list of packages elsewhere.

Take a look at how this is implemented in other IDE/apps. For example, QGIS has supported Python plugins for years and has hundreds of plugins to manage. Look at the QGIS External (official) and Experimental plugins dialogs here:

http://www.qgistutorials.com/en/docs/using_plugins.html

Note that official plugins need to be approved. Here's their list of items to pay attention to for fast approval:

http://plugins.qgis.org

Title: Re: Online Package Manager
Post by: lainz on October 05, 2016, 05:08:38 pm
I agree with Phil, so for example I can upload a release on GitHub that in fact is a package, and then anyone can just copy and paste the URL to this program and get the package installed.
Title: Re: Online Package Manager
Post by: Phil on October 05, 2016, 05:19:44 pm
Exactly. The only question in my mind is whether there should be any sort of "official" stamp, or perhaps just a requirement that the package have an appropriate license (modified LGPL, for example), documentation, etc. as indicated by the contents of the JSON file.



Title: Re: Online Package Manager
Post by: howardpc on October 05, 2016, 06:06:01 pm
Apart from questions of improving the functionality, reliability, security etc. of the package manager, careful thought needs to be given to non-software issues such as long term funding of webserver costs, who (or what grouping) has control of the 'official' repositories, what are the criteria for inclusion/rejection of submitted packages, whether some PPA-type system should be in place for addition of private repositories, who will police it in terms of enforcing adherence to the stated policies, and so on.
This is a bold start, but there could be a minefield ahead in terms of future maintenance and oversight, not so much of the software itself, but of the data it manages and the ongoing quality of that data.
Title: Re: Online Package Manager
Post by: lainz on October 05, 2016, 06:49:13 pm
If money is an issue I recommend to host it on GitHub/Sourceforge that has free website that is managed with a repository/ftp for project or organization.

Use standard releases for each package and only mantain a list of json that points to another url where the real zip is available (the zip can be in any host service).

If you choose GitHub/Sourceforge you can add as many mantainers you want, simple give them access to put files in the website.
Title: Re: Online Package Manager
Post by: rvk on October 05, 2016, 07:03:53 pm
Use standard releases for each package and only mantain a list of json that points to another url where the real zip is available (the zip can be in any host service).
If you choose GitHub/Sourceforge you can add as many mantainers you want, simple give them access to put files in the website.
Yes, I would also advise using existing download locations. And because GitHub and Sourceforge are the most commonly used it would be best to implement downloading directly from there. It would also have the benefit of having the latest version and always be up to date.

The json-collection could even be hosted on Github or Sourceforge and downloaded from there on start of the manager. The json-collection would point to the actual download of given project. (Although there should be a solution found for the individual component/packages from lazarus-ccr because they can't be individually downloaded as zip)

Or it should be from here (https://sourceforge.net/projects/lazarus-ccr/files/) but I'm not sure how old those are. The RichMemo in the current manager is more up to date.
Title: Re: Online Package Manager
Post by: Phil on October 05, 2016, 07:16:43 pm
who (or what grouping) has control of the 'official' repositories, what are the criteria for inclusion/rejection of submitted packages, whether some PPA-type system should be in place for addition of private repositories, who will police it in terms of enforcing adherence to the stated policies, and so on.

I'm not necessarily suggesting an "official" repository. That might not work for Lazarus. For example, the QGIS repository has rules that are probably far too rigid for Lazarus (http://plugins.qgis.org). It needs to fit the "culture" of Lazarus. For example, QGIS is a very Euro-centric effort, with many core members being employees of Euro government agencies or their contractors, so a rigid submission policy might naturally fit their bureaucratic modus operandi.

However, that doesn't mean the project manager couldn't have technical requirements. For example (and only as examples):

(1) Package must have a proper license. If it's the same as LCL or FPC RTL, just state so or point to the FPC modified LGPL doc files. If it's something else, anything, just have a link to it (Eclipse, BSD, etc.). The only thing unacceptable might be if nothing is specified in the JSON file. By clearly stating what license is used, the user of the package manager can decide beforehand whether that's even a package they're interested in.

(2) If the package depends on LCL (ie, has LCL under RequiredPgks in .lpk file), then it must specify what LCL interfaces it has been tested against. I typically test against Carbon, Win32, GTK2 at a minimum so that I can legitimately say that the package is cross-platform.

That sort of thing.
Title: Re: Online Package Manager
Post by: molly on October 05, 2016, 07:27:44 pm
Just wanted to mention Delphinus (https://github.com/Memnarch/Delphinus) in case it wasn't already (even though i seem to remember getting the name from this board).

Being able to at least store packages inside your own github account would help tremendously as right now things are scattered all over the internets. At least it would also allow for individuals to create their own packages so these things can be shared.

Decisions about a official or even semi-official package server would perhaps be something for the foundation as well ?
Title: Re: Online Package Manager
Post by: Phil on October 05, 2016, 07:57:51 pm
Decisions about a official or even semi-official package server would perhaps be something for the foundation as well ?

Lazarus already has official packages, which are the ones deemed worthy or essential enough to include with the IDE.

What a package manager can do is establish an unofficial list somewhere between the official IDE packages and the CCR slushpile. At the very least it indicates that a package is still alive and that the author is available to put in the minimal effort of "regularizing" it to meet the package manager's requirements.


Title: Re: Online Package Manager
Post by: Graeme on October 05, 2016, 08:02:30 pm
I agree with Phil, so for example I can upload a release on GitHub that in fact is a package,...
As I already mentioned in the mailing list, and somebody else mentioned it here... The best approach seems to be whan  Delphinus does on Github. Everything is hosted there.  Delphinus use the Github API to detect new packages and automatically present those in the IDE. Anybody can add there own packages via Github plus the required JSON file. No central repository or hosting location is needed. This is the best of all worlds. Now simply port it to Lazarus IDE and enjoy. :)
Title: Re: Online Package Manager
Post by: balazsszekely on October 05, 2016, 09:19:56 pm
@rvk
You're the first one who actually tested the pacakge, thank you for this!
Quote
TJSONStringType is an UTF8String in trunk.
Fixed! I should have typed "AJSON: TJSONStringType" instead of "AJSON: Ansistring"
Quote
Suggestion #1: Making the packages-list more compact. Only expanding when choosing the +
Done. I updated the link.
Quote
Suggestion #2: Putting the "Online Package Manager" above the "Install/Uninstall packages". I'm very used to be "Install" being the last in that menu :) Although, if this becomes the standard the position at the bottom might be preferred.
I will leave it where it is for now, since we are only testing. It can be changed later if necessary.
Quote
Question: What packages will be provided in the end.
Every package will be accepted in the official repository with one condition, it must be checked first. I will do the work if necessary.
Quote
Will the lazarus-ccr packages/components be added?
Yes.


@Phil, @lainz, @molly, @Graeme
Quote
I would assume this would be the case. That way, a package author only needs to publicize the URL of the package zip. The user types/pastes this URL into the package manager, which does the rest.I would use a separate .zip for each package. And each .zip would contain its own JSON file for the package. Put a master list of packages elsewhere.
I plan to add support for external zip files/repositories, but this is a dangerous game(my only problem with delphinus + the fact, that it force you to use github). The package manager will automatically download/extract the zip, then install it into the IDE. It's a great way to inject a malware into someone's computer. This is why I insist to have an official repository, where the packages can be checked(malware wise + legally as @Phil mentioned). On the other hand, forcing the developers to use only the packages from the official repository it's also wrong, but they must use it at their own risk.


@howardpc
I was hopping that the official repository can be hosted in one of the freepascal.org directory(see fppkg). For now @Leledumbo was kind enough to host the repository on his personal server.

PS: Thank you all for the feedback.
Title: Re: Online Package Manager
Post by: Phil on October 06, 2016, 03:32:09 am
Every package will be accepted in the official repository with one condition, it must be checked first. I will do the work if necessary.

That sounds reasonable.

Quote
I was hopping that the official repository can be hosted in one of the freepascal.org directory(see fppkg). For now @Leledumbo was kind enough to host the repository on his personal server.

It might actually be healthy to be independent of freepascal.org.

In any case, since you guys are doing the work, it's up to you to decide where to host it. Leledumbo's server sounds fine to me.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 06, 2016, 12:52:52 pm
Sorry I haven't tested the package manager yet. I try to do it soon, today or tomorrow.
Earlier discussions have recommended fppkg.
 http://free-pascal-lazarus.989080.n3.nabble.com/Lazarus-An-online-package-manager-tt4043469.html#none
I discussed with GetMem earlier and he says fppkg is not very well suited here. I must take his word on this issue because he is the only person so far to make a functional online package manager.
"Lazarus packagemanager" from Darius Blaszyk uses fppkg but does not work.
The "Aarre" initiative from Mattias and myself has no functional code either.
Several people (including myself) had plans to write such a package manager ... but nobody did until now.

My goal is to include this GetMem's work in Lazarus sources, either as a package or directly in the packages/ source directory.
It also means commit access for him.
It does not need to be perfect initially. As always a piece of code improves by iterations. People can then provide patches to improve it.
Using / not using fppkg is a big design decision but even that can be changed if need be. But again, it needs code from somebody. Simply expressing one's opinion on the issue is not enough.

The management of online packages and the packages included with Lazarus must be integrated seamlessly. Dependencies between all them must be handled automatically.
However this is not required in the initial version either.

The best approach seems to be whan  Delphinus does on Github. Everything is hosted there.  Delphinus use the Github API to detect new packages and automatically present those in the IDE.

Ok, I was planning to ask how it scans all the projects to find Delphi packages. I guess it searches a specific file name using the Github API.
Yes, that is cool and tempting but it must not be the only interface for our package manager. We must support other sources, too. Some packages (Lazarus CCR) are in SourceForge and there are various other options.
So, support for Github API and other APIs should be added later but not initially.

I will answer the Lazarus mailing list post after I have tested the package manager. Please follow it, too.
Talking about mailing list, does it work now for everybody? The known problems were solved by Marc.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 06, 2016, 01:22:13 pm
I plan to add support for external zip files/repositories, but this is a dangerous game(my only problem with delphinus + the fact, that it force you to use github). The package manager will automatically download/extract the zip, then install it into the IDE. It's a great way to inject a malware into someone's computer. This is why I insist to have an official repository, where the packages can be checked(malware wise + legally as @Phil mentioned). On the other hand, forcing the developers to use only the packages from the official repository it's also wrong, but they must use it at their own risk.

A user must not need to learn other alternative URLs for packages, nor copy/paste them. The user must be able to simply search for packages by name + other criteria and get a list of all worthy packages.
It means your JSON config must support an external URL. It should be a trivial change (ok, I write this without testing your code yet).
It means a package author can make the required ZIP file in his repository and ask you to add it to the list. Files don't need to be copied anywhere.
Do SourceForge etc. allow direct download links for files? I think they do. I remember you claimed the opposite. I must study the issue.
Testing your code is now nro 2. in my ToDo list. Wait ...
Title: Re: Online Package Manager
Post by: JuhaManninen on October 06, 2016, 01:36:01 pm
(1) Package must have a proper license. If it's the same as LCL or FPC RTL, just state so or point to the FPC modified LGPL doc files. If it's something else, anything, just have a link to it (Eclipse, BSD, etc.). The only thing unacceptable might be if nothing is specified in the JSON file. By clearly stating what license is used, the user of the package manager can decide beforehand whether that's even a package they're interested in.

An "official" server with a managed configuration file solves the issue. Only legal packages are accepted.
Otherwise the license does not matter, any free package is OK. The license can be commercial, for example if a company wants to deliver a demo of their product, fine. It is not a package manager's task to decide.
The license should be shown in the GUI, yes.

Quote
(2) If the package depends on LCL (ie, has LCL under RequiredPgks in .lpk file), then it must specify what LCL interfaces it has been tested against. I typically test against Carbon, Win32, GTK2 at a minimum so that I can legitimately say that the package is cross-platform.

Yes, that information must be shown, too. There are packages which cannot be cross-platform by definition, for example by using MS Office tools by OLE automation.
Title: Re: Online Package Manager
Post by: balazsszekely on October 06, 2016, 01:46:17 pm
Quote
@Juha
It means your JSON config must support an external URL. It should be a trivial change (ok, I write this without testing your code yet).
Yes, it is a trivial change.

Quote
It means a package author can make the required ZIP file in his repository and ask you to add it to the list. Files don't need to be copied anywhere.
Ok, and what if another user decide to download and install the the package form the list? The package manager will do it automatically,  without any sanity check. This might lead to problems.
Title: Re: Online Package Manager
Post by: minesadorada on October 06, 2016, 01:46:42 pm
...
Do SourceForge etc. allow direct download links for files? I think they do. I remember you claimed the opposite. I must study the issue.
Yes, LazAutoUpdate uses direct downloads from Sourceforge.
Title: Re: Online Package Manager
Post by: balazsszekely on October 06, 2016, 01:55:17 pm
Quote
@minesadorada
Yes, LazAutoUpdate uses direct downloads from Sourceforge.
I'm almost certain it's not a direct download. You have to follow a few redirects. Personally I don't like that, though it's easily doable with TFPHTTPClient.
Title: Re: Online Package Manager
Post by: balazsszekely on October 06, 2016, 01:59:21 pm
@Juha

As an initial step we should make an official repository. I can include a few hundred packages from different location(lazarus ccr, etc...). I think it's more then enough for a start. After that we can add other dependencies/install method and whatnot. We should keep it simple.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 06, 2016, 02:38:58 pm
Ok, and what if another user decide to download and install the the package form the list? The package manager will do it automatically,  without any sanity check. This might lead to problems.
A sanity check is done by you (or other admin) when adding a URL to the JSON configuration file. You must add trusted URLs only.
A centralized and managed configuration has an advantage compared to getting all available packages from GitHub and other services automatically.

As an initial step we should make an official repository. I can include a few hundred packages from different location(lazarus ccr, etc...). I think it's more then enough for a start. After that we can add other dependencies/install method and whatnot. We should keep it simple.
Yes, that is fine initially.
Title: Re: Online Package Manager
Post by: lainz on October 06, 2016, 04:00:26 pm
Hi GetMem, I'm testing it and works nicely.

You can add BGRA-Controls package?

Name: BGRA Controls
Version: 4.1.0.0
Description: BGRA Controls is a set of graphical UI elements that you can use with Lazarus LCL applications.
Author: Dibo, Circular, Lainz and others.
Compatible with: Lazarus: 1.6
Package type and Dependencies: You get them automatically right?
License: LGPL Modified LGPL

You can download it here:
https://github.com/bgrabitmap/bgracontrols/releases


And a suggestion, it should be downloaded himself to get updates of this package manager, not sure if possible but it's something that will be nice.

And show the version number of the package manager somewhere in the window.
Title: Re: Online Package Manager
Post by: Phil on October 06, 2016, 04:08:43 pm
License: LGPL

I read that to mean that it does not include the linking exception that LCL and FPC RTL have. If it does, it needs to include that here.

Title: Re: Online Package Manager
Post by: lainz on October 06, 2016, 04:09:52 pm
License: LGPL

I read that to mean that it does not include the linking exception that LCL and FPC RTL have. If it does, it needs to include that here.

So

License: LGPL with linking exception Modified LGPL

that's the right one.
Title: Re: Online Package Manager
Post by: Groffy on October 06, 2016, 04:34:24 pm
And a suggestion, it should be downloaded himself to get updates of this package manager, not sure if possible but it's something that will be nice.

And show the version number of the package manager somewhere in the window.

Nice idea.

Just installed the package manager, and its working great!

As soon there will be more registered packages, it might be helpfull to introduce categories(?)


Best regards
Title: Re: Online Package Manager
Post by: balazsszekely on October 06, 2016, 06:14:01 pm
Quote
Hi GetMem, I'm testing it and works nicely.
Thanks for testing, I'm glad it's working.

Quote
You can add BGRA-Controls package?
Yes, but you have to wait a few days, because:
1. The package manager is only completed about 30-40%
2. We didn't decide yet all the details
3. I don't want to bug @Leledumbo each day with a new package.

Quote
Package type and Dependencies: You get them automatically right?
Not yet, I added manually to the JSON. I hope an automated tool will be ready in week or so. However once the dependencies are loaded from the json it will automatically search and resolve each package dependency. For example VirtualStringTree depends on LCLextension. If you try to check VirtualTreeView and LCLExtension is not checked or installed the package manager will warn you. Please try it!

Quote
And a suggestion, it should be downloaded himself to get updates of this package manager, not sure if possible but it's something that will be nice
This is an excellent idea. Since package manager is a package,  will work 100%.

Quote
@Groffy
As soon there will be more registered packages, it might be helpfull to introduce categories(?)
Yes I will add it, but it's not very high on the priority list. For example I just realized that a zip file can contain multiple .lpk files. The package manager can handle it for now. I have to redesign it.
Title: Re: Online Package Manager
Post by: guest58172 on October 06, 2016, 06:40:23 pm
Hi,

 I decided to implement the online package manager(opkman). The first alpha version is ready and it works like this: the packages are zipped and stored in a webserver(repository) along with a json file. I chose zip to minimize server load. The json file contains all the necessary info about the packages. Once installed into the IDE, the opkman downloads, then serialize the json file into a package list. The list is  displayed in a tree. On request the packages can be downloaded or/and installed. For now the repository is read-only, it contains only eight, well known(I guess?) packages. The nature/type of the eight package is irrelevant for now, since we are only testing the functionality of the opkman. Few notes

It looks nice. Why don't you use a GitHub or BitBucket repository ?
Title: Re: Online Package Manager
Post by: molly on October 06, 2016, 07:26:18 pm
@GetMem:
You are already getting enough feedback from experienced programmers so i'll stop adding (more) confusion :-)

However, Juha made some good valid points. You can always opt for keeping (manual) control on the package description files yourself.

It is always possible (further down the road) to have different signed packages, official, semi-official, community, and user packages (just to name a few categories). That way it would be possible for individual users to let their own packages be managed by the packagemanager, yet do not bear (any) impact on the official packages. If users  wish to do so they can share their packages amongst each other by providing the descriptions or add personal url repositories to their own copy of the package manager.

It would perhaps be interesting to implement such approach as it allows for users to experiment creating their packages before asking permission to have them added in an 'upgraded' fashion, e.g. from user, to community, from community to semi-official to finally end up in official state (if that would ever happen).

Initially it would be more interesting to get things started, and along the way slowly decide what would be better to implement and what not. There is many many many food for thoughts there.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 06, 2016, 08:27:55 pm
Quote
from user, to community, from community to semi-official to finally end up in official state

Such classification will not work in practice and is not even useful.
There will be good and popular packages, then there will be less good and less popular ones.
Or, maybe an automatic integration to GitHub and SourceForge (if possible) would give "user" packages while the managed packages from server are the "community" packages.
The package manager must differentiate between those 2.

A useful classification would be a user feedback and voting system. It will need server side SW and maybe user authentication.
Let's not think about it yet.

Lazarus distribution has some "official" packages. Some of the current ones can be moved elsewhere when the online system works. One example is the Industrial package.
Ideally Lazarus distribution should include only packages the IDE itself needs. It keeps the distribution slim.
Title: Re: Online Package Manager
Post by: shobits1 on October 06, 2016, 08:30:17 pm
I think it should show the status of the current Installed package more visually, maybe using color codes:
Green: for the already installed packages.
Yellow: for the installed and need update packages.
Neutral: for the other packages.

It may also be helpful(when the list grows) to have checkbox filter for those status.
Title: Re: Online Package Manager
Post by: shobits1 on October 06, 2016, 08:33:02 pm
It should be helpful to provide (if available) URL for Wiki, documentation, Tutorial, Demos... in the package info.
Title: Re: Online Package Manager
Post by: JanRoza on October 06, 2016, 09:29:01 pm
It works great but I see that packages installed via opkman are placed in a subfolder 'Packages' under the opkman folder whereas all other packages installed in Lazarus reside in the folder 'components' under the Lazarus folder.
I think opkman should save the packages in the same location as Lazarus does to keep things uniform and simple.
Other than that: opkman is a great Lazarus add-on.
Title: Re: Online Package Manager
Post by: lainz on October 06, 2016, 09:43:05 pm
I think opkman should save the packages in the same location as Lazarus does to keep things uniform and simple.

I think that is not a good idea.

What if I have multiple lazarus (I have) and I want all the components installed in all of them. I can use this package manager to achieve that but only if the folder is as now: no duplicates, no lost packages.
Title: Re: Online Package Manager
Post by: guest58172 on October 06, 2016, 09:43:15 pm
Quote
opkman should save the packages in the same location as Lazarus does to keep things uniform and simple.
No, under Linux it would suck because authentification would be required (Lazarus Components folder is not writable without sudo)
Title: Re: Online Package Manager
Post by: balazsszekely on October 06, 2016, 09:50:50 pm
Quote
@BBasile
It looks nice. Why don't you use a GitHub or BitBucket repository ?
I will do my best to support GitHub, BitBucket, SourceForge, but at a later stage.

Quote
@molly
Initially it would be more interesting to get things started, and along the way slowly decide what would be better to implement and what not. There is many many many food for thoughts there.
My thoughts exactly.

@Juha
Did you get the chance to run a few tests?

Quote
@shobits1 I think it should show the status of the current Installed package more visually, maybe using color codes:
Green: for the already installed packages.
Yellow: for the installed and need update packages.
Neutral: for the other packages.
Actually this was implemented, but the package manager looked like a cockatoo bird.  :D Too many colors, I gave up.

Quote
@shobits1
It may also be helpful(when the list grows) to have checkbox filter for those status.
Please see attachment.

Quote
@JanRoza
whereas all other packages installed in Lazarus reside in the folder 'components' under the Lazarus folder
Under linux and osx the component folder sometimes is read only. Even under windows(especially win 10) you can run into privilege issues.
Title: Re: Online Package Manager
Post by: Phil on October 06, 2016, 09:56:14 pm
Visually it looks pretty good. One minor typo:

Dependecies --> Dependencies.

If a zip has more than one .lpk, will each package have its own checkbox? Eg, lazxproj_src.zip has two .lpk, one runtime, one installable:

https://macpgmr.github.io/MacXPlatform/LazXProj.html
Title: Re: Online Package Manager
Post by: lainz on October 06, 2016, 10:03:29 pm
Visually it looks pretty good. One minor typo:

Dependecies --> Dependencies.

If a zip has more than one .lpk, will each package have its own checkbox? Eg, lazxproj_src.zip has two .lpk, one runtime, one installable:

https://macpgmr.github.io/MacXPlatform/LazXProj.html

Good question. BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.
Title: Re: Online Package Manager
Post by: balazsszekely on October 06, 2016, 10:36:58 pm
Quote
@Phil
isually it looks pretty good. One minor typo:
Dependecies --> Dependencies.
Thanks! Corrected, link updated.

Quote
If a zip has more than one .lpk, will each package have its own checkbox? Eg, lazxproj_src.zip has two .lpk, one runtime, one installable:
Yes, each package will have its own checkbox. I have to redesign the serialization.

Quote
@lainz
Good question. BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.
One by default, the others is up to user? Except when one depends on the other. This is getting very complicated fast.  :)
Title: Re: Online Package Manager
Post by: shobits1 on October 06, 2016, 11:05:21 pm
Quote
@shobits1
It may also be helpful(when the list grows) to have checkbox filter for those status.
Please see attachment.
It needs a filter for the packages with available new updates.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 06, 2016, 11:56:57 pm
It works great but I see that packages installed via opkman are placed in a subfolder 'Packages' under the opkman folder whereas all other packages installed in Lazarus reside in the folder 'components' under the Lazarus folder.

Not true.
Only the packages included in Lazarus distribution reside under 'components' folder. Other packages can be placed anywhere.
Title: Re: Online Package Manager
Post by: lainz on October 07, 2016, 12:03:39 am
GetMem you can host your package manager on GitHub, so it's easy to get a newer version when you're developing it.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 07, 2016, 12:44:55 am
GetMem you can host your package manager on GitHub ...

+1
I don't know how quickly we can get you commit access to Lazarus repo. I don't even know yet what other Lazarus developers say about this package manager.

I finally tested it. Works well! VirtualTreeview package was installed together with its dependency.
When this gets integrated with the current package management code, dependencies will be handled by it (I think).

You have implemented your own code for TZipper, TUnZipper etc. You should use the TZipper provided by FCL :
  http://wiki.freepascal.org/paszlib#TZipper
BTW, your zipper code has a memory leak somewhere.

You have also added a copy of the VirtualTreeview code into your package. Can't it use the VirtualTreeview package as a dependency? Code duplication is always bad for maintenance.

You used the UTF8 specific functions like DirectoryExistsUTF8(). They are not needed any more with Lazarus + FPC 3.
I think FPC 3+ can be made the minimum requirement for this new code.
Ok, maybe not yet. Don't change them.
Title: Re: Online Package Manager
Post by: Leledumbo on October 07, 2016, 06:24:11 am
GetMem you can host your package manager on GitHub, so it's easy to get a newer version when you're developing it.
I kinda agree with this. Adding packages is a matter of approving merge request then, while maintaining code reviews and other things, with history. Otherwise, I can make my server a git server as well, but it will lack the convenience of github UI.
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2016, 07:29:38 am
@Juha
Quote
When this gets integrated with the current package management code, dependencies will be handled by it (I think).
Yes.

Quote
You have implemented your own code for TZipper, TUnZipper etc. You should use the TZipper provided by FCL :
 http://wiki.freepascal.org/paszlib#TZipper
Not quite! I used the same unit provided by FCL, but with a few modifications, this is also true for httpclient. Neither one provides a timeout function. For example when you try to connect to an offline server with httpclient, sometimes it waits 25 - 30 sec before returns an error. The same is true for zip/unzip from Zipper.pas, once started you have to wait until the entire zip process is over, no possibility to abort the process. More over httpclient doesn't even show a download progress. I had to create a thread timer and a modified streamer class to be able to provide a feedback(see opkman_downloader.pas unit). The possibility to show a progress with TZipper is also limited, (although is there) so I had to enhance the function.
I know this is code duplication. Ideally I should create a patch for those units, but when will be accepted(if ever)? Since zipper.pas and httpclient.pas functionality is more then enough in 99% of the cases,  fpc core members would not accept a patch just to satisfy the online package manger needs(at least this is what I think).

Quote
BTW, your zipper code has a memory leak somewhere.
I always develop with "Debug IDE" profile to avoid leaks. I fixed many leaks in my package, obviously I missed something. Thanks.

Quote
You have also added a copy of the VirtualTreeview code into your package. Can't it use the VirtualTreeview package as a dependency?
Initially I wanted to avoid third party components. Unfortunately TTreeView is so limited in so many ways I decided to switch to VST. The only version which works well in every major widgetset is VST4.8.7R2. The newer one doesn't even compile under osx for example. What if somebody already has a newer version installed? It will lead to conflicts, multiple resource errors, etc. It's not a good practice to force the developers to use a specific version of VST, just to be able to install opkman. So I added VST internally to the package manager, even replaced the resource names with a resource editor to avoid conflicts. This way it can happily coexists with any version of VirtualStringTree. Code duplication again? Perhaps but the benefits outweigh the drawbacks.

Quote
@shobits1
It needs a filter for the packages with available new updates.
Ok. I can add this later.

@lainz, @Leledumbo
I will add the source to github soon.
Title: Re: Online Package Manager
Post by: rvk on October 07, 2016, 07:58:04 am
Since zipper.pas and httpclient.pas functionality is more then enough in 99% of the cases,  fpc core members would not accept a patch just to satisfy the online package manger needs (at least this is what I think).
If that is the case they should at least change the source so that you can inherit the code and enhance it. A lot of the time this is not possible due to unnecessary private variables.

I also hacked one of those http classes once because there was only a download progress option but none for upload (like for uploading a large file via a post). Luckily that could be done via inheritance but often this is not possible.

If a class is designed, so you would need to copy the whole source to add such functionality, I think it is designed poorly.

B.T.W. I thought httpclient did have a download progress option but it lacked an upload progress. (Can't look right now but I think it's the OnDataReceived in dodataread. But it lacks a OnDataSend)
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2016, 08:50:32 am
Quote
@rvk
Can't look right now but I think it's the OnDataReceived in dodataread. But it lacks a OnDataSend
True! With my streamer class can do both download/upload progress threaded. @rvk if you find a way to abort a download/upload process via class inheritence let me know. The same is true for a timeout function.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 07, 2016, 11:02:03 am
I know this is code duplication. Ideally I should create a patch for those units, but when will be accepted(if ever)? Since zipper.pas and httpclient.pas functionality is more then enough in 99% of the cases,  fpc core members would not accept a patch just to satisfy the online package manger needs(at least this is what I think).

Sounds like those features are valid for many use cases, not only for the online package manager.
SW always improves by iterations. This is true for FCL code, too.
I believe a patch for both zipper and httpclient would be accepted. Even more so because an essential Lazarus package must copy/paste FCL code otherwise.
[Edit] A patch may be included in FPC 3.2. It means your copied version is a temporary solution until that compiler version becomes the minimum requirement. We must always think long-term.

VirtualTreeview is more difficult. The porting process continues by Luiz Américo if I understand right.
The long term goal must however be to reuse code. It would mean to move VirtualTreeview to Lazarus codebase together with online package manager once everything works.
I personally like the VirtualTreeview component. I made some innovative SW with it and Delphi years ago.

A thought: if the management of local packages and online packages is integrated in Lazarus code, the non-GUI parts of your code must be moved to Lazarus code base. It means GUI must be separated from logic even more than it is now.
Another choice is to add hooks to the Lazarus package management interface so that available online packages can be registered by external code.
Title: Re: Online Package Manager
Post by: Graeme on October 07, 2016, 11:26:07 am
Good question. BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.
And fpGUI has one for each GUI backend (GDI, X11, Carbon, OS/2 etc)
Title: Re: Online Package Manager
Post by: rvk on October 07, 2016, 11:30:34 am
Quote
@rvk
Can't look right now but I think it's the OnDataReceived in dodataread. But it lacks a OnDataSend
True! With my streamer class can do both download/upload progress threaded. @rvk if you find a way to abort a download/upload process via class inheritence let me know. The same is true for a timeout function.
I made a helper for TFPHTTPClient (for a WebDav client) in which I override the complete SendRequest() to call a special CopyFromStreamToStream() which has a Callback() function for upload-progress. Maybe you implemented it the same way for download (haven't looked yet). It can be easily changed that the Callback() function can receive an Abort-boolean in which case the CopyFromStreamToStream() can abort it's operation.

The only problem I had was that "socket" wasn't exposed in TFPHTTPClient. And that's a serious problem. So I had to change the original fphttpclient.pp. I just added the following line to my copied fphttpclient.pp and I could use socket in my helper and stream.
Code: Pascal  [Select][+][-]
  1.     Property Socket: TInetSocket read FSocket;

But I do agree with JuhaManninen. An upload-callback as well as Abort-option should be added to TFPHTTPClient. It would even be a very small patch. The Download-progress is already there in the DoDataRead (which calls OnDataReceived). So the FOnDataSent would simple to implement. Only 3 lines in TFPHTTPClient but with a complete CopyFromStreamToStream() because TStream.CopyFrom() doesn't have a progress-option. Or should that one be added too :)

I was also very surprised to see the download-progress option in TFPHTTPClient was added but upload-progress option was left out.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 07, 2016, 11:56:45 am
BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.

I think there should be only one package in a ZIP file.
Having many packages adds a useless extra complication.
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2016, 12:15:43 pm
@Juha, @rvk
Great! Then we need a patch for httpclient/zipper. Right now I'm busy with opkman, but I will do it later. If somebody wants to help, I would be grateful.

Quote
@Juha
I think there should be only one package in a ZIP file.
Having many packages adds a useless extra complication.
That's true, however many big packages(zeos, ibobjects, bgrabitmap) just to mention a few, contains multiple lpk files. Which one should be installed by default? It would be a great help for me if only one package/zip is installed.
Title: Re: Online Package Manager
Post by: rvk on October 07, 2016, 12:34:03 pm
Ok, did some more testing. Here is a list. Don't mind some of the points (they might seem like nitpicking) but they are just some second observations.
(SPM = Standard Package Manager)
Code: [Select]
[~]$ fppkg list
Name                 Installed        Available
embweb               -                0.9.1-968
gecko                -                2.9.0-3
jquery               -                0.9.0-842
lazmkunit            -                0.9.3-1
lnet                 -                0.6.6-2606
webdesign            -                0.9.0-906
Title: Re: Online Package Manager
Post by: JuhaManninen on October 07, 2016, 01:56:50 pm
Maybe a button to go directly to "Install/Uninstall Packages". Not sure if this is possible (opkman is ShowModal and SPM too). But it can be handy to take a quick look in SPM and escape right back into opkman.

That would be clumsy. The goal is to integrate management of online package and local packages. The SPM would then show also online packages and this new VirtualTreeview based GUI would show local packages. In essence the new GUI will be an alternative to the old GUI. Competition is good.

Quote
Regarding the multiple packages in one zip/download. Maybe there can be checkboxes per .lpk inside the treeview which to install. Otherwise there should be some dialog after choosing a package as to which package you really want installed. Moving each .lpk into it's own zip/source is not advised because all those .lpk use the same source and multiple "same sources" will eventually get you in trouble when compiling.

Currently people must select from individual .lpk files anyway, don't they?
I don't know of all the complexities involved but maybe the package manager should add a new meta-package type which includes many actual packages. In the GUI those packages would show as sub-nodes under the meta-package parent node.
Just an idea ...
Title: Re: Online Package Manager
Post by: lainz on October 07, 2016, 02:53:07 pm
BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.

I think there should be only one package in a ZIP file.
Having many packages adds a useless extra complication.

Yes but why to duplicate the same source code and just for getting a different zip? Maybe for lpk only a file is changed to fit the widgetset, all other files remains the same.
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2016, 06:00:57 pm
@rvk
Quote
When I install a package and choose NOT to rebuild and close opkman and open it again... the opkman shows the package as "Already installed" while it is not yet.
That's not true, it is installed. Close Opkman(without rebuild), then open "Install/Uninstall packages" and check the installed package list. More over, if you close Lazarus and delete the just installed package directory from the filesystem, on next startup Lazarus will complain about a missing package. You cannot use it until an IDE rebuild but it is installed.
Quote
Would the "Downloaded" status be really necessary? When not installing a package and again pressing install, wouldn't re-downloading it and installing it be more logical (you would also have the updated version if any). Or is "Downloaded" also for non-installable packages (like synapse)?
Search for ForceDownload and ForceExtract booleans. The user will choose the appropriate action. It is already implemented(false by default),  not yet visible in the option dialog though.
Quote
"Already installed(Version: 1.0.0.0)". There is no space between installed and (Version). That said... maybe 2 columns with Current version and Online/updated version would be useful. Like the fppkg does with "Installed" and "Available" columns. (See at the bottom of this post)
Escape doesn't work to close the opkman. There should probably a Cancel button for that just like in the "Install/Uninstall Packages" to easily exit the dialog.
Maybe a button to go directly to "Install/Uninstall Packages". Not sure if this is possible (opkman is ShowModal and SPM too). But it can be handy to take a quick look in SPM and escape right back into opkman.
An extra column with the (short)description of the package in the folded-view. There is plenty room to move Status (and current and available version #) in a separate column.
Abbreviate "Status" to something simpler. In that case that extra column doesn't need to be that wide. It's hard to see what's available/installed or downloaded at the moment. Just Available, Downloaded and Installed will be sufficient. And it will be easier on the eyes.
After the Downloaded and Installed could be an update status (like " - Updated").
Only make the " - Updated" status bold. All others should be plain. The bold status also makes it hard to read. (Especially when my eyes are tired :) )
Those are all valid and useful suggestions. I will implement them.
Quote
When those hundreds of packages are added (good luck with that  :P ) a category-pulldown will be useful (I think it was already suggested).
:D Ok fair enough, I won't find that many packages but adding one package to the repository will be a matter of seconds, once the automated tool is ready.
Quote
Regarding the multiple packages in one zip/download. Maybe there can be checkboxes per .lpk inside the treeview which to install. Otherwise there should be some dialog after choosing a package as to which package you really want installed. Moving each .lpk into it's own zip/source is not advised because all those .lpk use the same source and multiple "same sources" will eventually get you in trouble when compiling.
Each lpk will have a checkbox.
Quote
Moving the development of the opkman to SourceForge or GitHub is highly appreciated. We (I) can keep track of progress and automatically SVN a new version into my new trunk-compile scripts :) (unless you have Lazarus repo access real soon)
Done: https://github.com/getmem/LazOpkMan

@Juha, @lainz
I will implement the multiple lpk version. Each lpk will have it's own checkbox, description etc.

   
Title: Re: Online Package Manager
Post by: valdir.marcos on October 07, 2016, 06:56:51 pm
What about big complex packages that fits simultaneously many versions of FPC (for instance 2.6.x, 3.0.x, 3.2.x, etc) or many versions of Lazarus (for example 1.0.x, 1.2.x, 1.4.x, 1.6.x, 1.8.x/2.0.x, etc)? Some of them might have different .lpk files for different versions of FPC or Lazarus.

BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.

I think there should be only one package in a ZIP file.
Having many packages adds a useless extra complication.

Yes but why to duplicate the same source code and just for getting a different zip? Maybe for lpk only a file is changed to fit the widgetset, all other files remains the same.
Title: Re: Online Package Manager
Post by: valdir.marcos on October 07, 2016, 07:03:02 pm
Just curious.
This Lazarus repository will be similar to Debian repositories that have stable, testing and unstable versions of the packages?
Title: Re: Online Package Manager
Post by: JuhaManninen on October 07, 2016, 07:27:30 pm
BTW, your zipper code has a memory leak somewhere.

It is not in the zipper code.
There is a leak after installing a package and building / restarting the IDE. I could not figure out where exactly.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 07, 2016, 07:28:41 pm
This Lazarus repository will be similar to Debian repositories that have stable, testing and unstable versions of the packages?

No.
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2016, 10:22:03 pm
Quote
@Juha
It is not in the zipper code.
There is a leak after installing a package and building / restarting the IDE. I could not figure out where exactly.
I was able to reproduce the memory leak. It's caused by "DoOpenPackageFile" function from inside pkgmanager.pas called through packageintf.pas. If I remove the function call the memory leak is gone. Something is not freed inside "DoOpenPackageFile".
Title: Re: Online Package Manager
Post by: lainz on October 12, 2016, 05:48:49 pm
How it is going, you created the git repository?

Edit: see the first post, the repository was created 5 days ago.  ::)
Title: Re: Online Package Manager
Post by: balazsszekely on October 12, 2016, 09:00:46 pm
Quote
@lainz
How it is going?
I'm working on it. To support multiple packages, I had to redesign a large part of the code.(see attachment). When it will be ready? I cannot tell you exactly. Hopefully soon.
Please suggest categories, for now I have:  Networking, Graphics, Multimedia, Reporting, Miscellaneous. What else? BGRABitmap is graphics, mediaplayer multimedia  :D,
no-brainer so far, but in which category can I include VirtualStringTree for example?

Quote
you created the git repository
Yes, I updated my first post a few days ago.
Title: Re: Online Package Manager
Post by: lainz on October 12, 2016, 09:05:23 pm
As I can see in your screenshot:

BGLControls is not BGRAControls! BGLControls is an OpenGL control to use with BGRABitmap for OpenGL.

BGRAControls is located here: https://github.com/bgrabitmap/bgracontrols , and is a separate package/download.
Title: Re: Online Package Manager
Post by: balazsszekely on October 12, 2016, 09:31:12 pm
Quote
@lainz
BGLControls is not BGRAControls! BGLControls is an OpenGL control to use with BGRABitmap for OpenGL.
Thanks, noted! The eight packages is for testing purposes only, the whole repository will be recreated.
Title: Re: Online Package Manager
Post by: lainz on October 12, 2016, 09:40:47 pm
Ok, is a really nice feature, hope some day get bundled and distributed with lazarus.
Title: Re: Online Package Manager
Post by: howardpc on October 12, 2016, 09:48:37 pm
Please suggest categories, for now I have:  Networking, Graphics, Multimedia, Reporting, Miscellaneous. What else? BGRABitmap is graphics, mediaplayer multimedia  :D ,
no-brainer so far, but in which category can I include VirtualStringTree for example?

DataControls or GUIContainers perhaps.
Could I suggest avoiding Miscellaneous altogether? It's as bad as the name 'Anonymous'  ;D . Or, if you must, how about Other (it's shorter and no less informative).
Title: Re: Online Package Manager
Post by: JuhaManninen on October 12, 2016, 10:08:59 pm
DataControls or GUIContainers perhaps.

GUIContainers or VisualContainers is good.
DataControls brings an association to DB data aware controls.
Title: Re: Online Package Manager
Post by: balazsszekely on October 12, 2016, 10:10:00 pm
Quote
@howardpc
DataControls or GUIContainers perhaps.
VirtualStringTree is a  GUIContainer. I like that! Thanks.

Quote
Could I suggest avoiding Miscellaneous altogether? It's as bad as the name 'Anonymous'  ;D . Or, if you must, how about Other (it's shorter and no less informative).
Done.

Edit: I need more  :). @Juha?
Title: Re: Online Package Manager
Post by: avra on October 16, 2016, 05:48:12 pm
Please suggest categories, for now I have:  Networking, Graphics, Multimedia, Reporting, Miscellaneous. What else?
Take a look at left frame on http://torry.net/pages.php?id=20. You decide if you want such fragmentation, but anyway you will get an idea about possible categories.
Title: Re: Online Package Manager
Post by: balazsszekely on October 16, 2016, 06:37:05 pm
Quote
@avra
Take a look at left frame on http://torry.net/pages.php?id=20. You decide if you want such fragmentation, but anyway you will get an idea about possible categories.
Thanks avra! It's useful.
Title: Re: Online Package Manager
Post by: Xor-el on October 16, 2016, 07:23:35 pm
Awesome Job you are doing @GetMem, I have been wanting something like this for a while for FreePascal and it looks like my prayers have been answered.
Thanks a lot.
How about we have a category called Cryptography?
Title: Re: Online Package Manager
Post by: circular on October 16, 2016, 08:22:12 pm
That's a great idea.

I am wondering about updates: how to update the repository with latest version? Let's say I publish a new version of BGRABitmap, how can I update the version number in the package manager?
Title: Re: Online Package Manager
Post by: shobits1 on October 16, 2016, 08:32:56 pm
How about category for the IDE related things, like anchor docking, debuggers, ... maybe call it "IDE Enhancement" or something else (I'm not great with naming).
Title: Re: Online Package Manager
Post by: howardpc on October 16, 2016, 08:42:07 pm
How about category for the IDE related things, like anchor docking, debuggers, ... maybe call it "IDE Enhancement" or something else (I'm not great with naming).
Perhaps LazIDEPlugins ?
Title: Re: Online Package Manager
Post by: balazsszekely on October 16, 2016, 10:02:53 pm
Thanks guys! I will add a few more categories soon. I just realised we need an entry for supported widget set.
Quote
@circular
I am wondering about updates: how to update the repository with latest version? Let's say I publish a new version of BGRABitmap, how can I update the version number in the package manager?
Each package has a "Home page" and a "Download URL" section(see screenshot from previous page). On request the package manager can download and install the updated package.
Title: Re: Online Package Manager
Post by: Memnarch on October 17, 2016, 03:14:00 pm
Hi,
I am the author of Delphinus, so i thought i'd give my 2 cents:

First of all: Cool to see such a project for the Lazarus-Community. Several Month ago i was asked to port Delphinus to Lazarus, but i declined. I am way to busy with the Delphi-Version. And on top of that, my general knowledge of Lazarus and Freepascal is quite sparse.

About the security/legal-concerns of Delphinus and the reason to control everything on this Package-manager: This is going to be a really heavy task. Even systems like NuGet do not have a QA-Process. The "Report"-Button is there for a reason (the Delphinus Equivalent is just to report a Repository on Github if it violates law or has malicious code).

Your approach has a (quite dangerous) problem: By doing some kind of validation (and not opting out!) you give a false sense of safety and legal security. If something goes wrong, it might all fall back to you. Doing nothing and having an option to report, might be a better one.

Let the community hang the bad people for you ;)

Greetings
Memnarch
Title: Re: Online Package Manager
Post by: JuhaManninen on October 17, 2016, 04:42:32 pm
Hi,
I am the author of Delphinus, so i thought i'd give my 2 cents:
Hi, and congratulations for your Delphinus. I plan to study it and get inspiration from it.

You are right, managing the system will require some work. There will be hundreds of packages at some point.
On the other hand Linux and BSD distributions manage their repositories which contain much more packages, sometimes compiled for many alternative architechtures.
If I understood GetMem right, our package manager will be able to download latest package versions from their trusted URLs. It means managing a package's version moves to its author.

Using the Delphinus approach as a main package manager has also other issues than QA. We would support only one of the commercial source hosting services. People would ask: "Why are you tied to GitHub? Do they pay you to ignore their competition?"
Well, they don't pay us. It would be fair to support Sourceforge, Bitbucket etc. Not all people like Git, why should Lazarus project force it on them?
I hope other hosting services also have APIs like GitHub has. In ideal situation we would support all the major ones, in addition to the managed main repository.

Regards,
Juha
Title: Re: Online Package Manager
Post by: Memnarch on October 17, 2016, 07:28:27 pm
I don't want to hijack this thread, but i'd like to explain why i used github:
None of the others had a suitable searchapi. I checked Bitbucket and Gitlab. Githubs is excellent to do what i wanted: Create a Packageindex without much work. It allows me to get started without managing a remote myself and give the Community control of the packages. That was essential for me for the beginning. If you read some of my older posts on my blog, you'll notice that i talk about adding support for multiple remotes for the future. And that's what is going to be the next project. However, this will not include Bitbucket or one of the other Big hosters. It is more intended to be an interface for defining/adding new types of remotes. I'll provide a Directory-Based one (good for offline environments).

If any of the other hosters (and i still hope for Bitbucket but their API is way beyond GitHubs) at some point extend their search api, i'll support them aswell. After all everything is abstracted by interfaces.

EDIT: But maybe at some point, i'll just abuse the Issue-Trackersystem of Github to allow other sources.
Title: Re: Online Package Manager
Post by: jwhitten on October 19, 2016, 08:52:03 am
Is this to be something like "NuGet" for MS visual studio ? (https://en.wikipedia.org/wiki/NuGet, https://www.nuget.org/)

If so, I think it is really good idea. Worst part of Delphi/Lazarus for me is that you must hunt various packages across the internet and central repository would be so much better.

I completely agree!!

+1,000,000
Title: Re: Online Package Manager
Post by: JuhaManninen on October 19, 2016, 11:31:27 am
Talking about NuGet ... can somebody please tell me how it manages the packages?
I understood it has a centralized place for them but who is allowed to add / remove / update packages?

It has server side SW which enables interactive feedback from users.
It would be useful in our system, too, but will not be implemented initially for sure.
Title: Re: Online Package Manager
Post by: Memnarch on October 19, 2016, 11:46:27 am
Users do:
https://www.nuget.org/users/account/LogOn?ReturnUrl=%2Faccount

Register and you get access to it.
Title: Re: Online Package Manager
Post by: balazsszekely on October 19, 2016, 05:41:17 pm
@Memnarch

Finally I got the chance to study Delphinus. Very nicely done! Porting to Lazarus though it would require a tremendous effort, it contains a lot of microsoft specific stuff. I'm not even sure it's possible,  at least not without rewriting a large part of the code.
Title: Re: Online Package Manager
Post by: circular on October 19, 2016, 05:46:14 pm
Each package has a "Home page" and a "Download URL" section(see screenshot from previous page). On request the package manager can download and install the updated package.
Oh I see.

Update is down by pressing the green cyclic arrows?
Title: Re: Online Package Manager
Post by: balazsszekely on October 19, 2016, 05:47:46 pm
Quote
@circular
Update is down by pressing the green cyclic arrows?
That's the refresh button. Update is not yet implemented.
Title: Re: Online Package Manager
Post by: balazsszekely on October 19, 2016, 05:50:16 pm
The ETA for the next release is monday (24.10.2016). After the release, everyone can create packages for the main repository. Until then a quick preview(win32/64, gtk2, carbon).
Title: Re: Online Package Manager
Post by: Memnarch on October 19, 2016, 05:58:28 pm
@GetMem a lot of interfaces need to be reimplemented. The critical stuff is all encapsulated. But you're right. Behind the scenes i use a lot MS-Specific stuff, which is problematic in that case.
Title: Re: Online Package Manager
Post by: JD on October 22, 2016, 03:58:23 pm
This is wonderful! I'm looking forward to its release. Kudos to GetMem and all who are involved with this project.

JD
Title: Re: Online Package Manager
Post by: lainz on October 22, 2016, 03:59:47 pm
The ETA for the next release is monday (24.10.2016). After the release, everyone can create packages for the main repository. Until then a quick preview(win32/64, gtk2, carbon).

Is looking well, two days left  :D
Title: Re: Online Package Manager
Post by: Xor-el on October 24, 2016, 09:07:24 am
D Day!!!  :-*
Title: Re: Online Package Manager
Post by: lainz on October 24, 2016, 08:54:25 pm
D Day!!!  :-*

Yeah, hope it get's published soon.
Title: Re: Online Package Manager
Post by: balazsszekely on October 24, 2016, 09:29:04 pm
I'm ready, we have to wait until @Leledumbo updates the repository. So please be patient...
Title: Re: Online Package Manager
Post by: lainz on October 24, 2016, 09:33:28 pm
OK. I've downloaded the package from GitHub. You will create a wiki or something with info on how to create an own repository (website) with packages?
Title: Re: Online Package Manager
Post by: balazsszekely on October 24, 2016, 09:48:22 pm
Quote
@lainz
OK. I've downloaded the package from GitHub. You will create a wiki or something with info on how to create an own repository (website) with packages?
Unfortunately that feature is not available yet, it will be in the next release though(see attachment). We should populate the central repository with packages first,  this is the main purpose of this release + bug fix. However if you really want a personal repository we can make one ;)

Title: Re: Online Package Manager
Post by: lainz on October 24, 2016, 10:12:53 pm
I mean for example if it's possible to create a personal repository using GitHub pages, so I can put all the packages I want and then download and install them in every PC I want.

If possible if you can create one as example.

Edit: Of course if the packages are all in the central repository it has no sense  8)

If you will create that I will wait for next release.
Title: Re: Online Package Manager
Post by: shobits1 on October 24, 2016, 10:46:13 pm
I keep getting 'Invalid JSON file'??
Title: Re: Online Package Manager
Post by: balazsszekely on October 24, 2016, 10:48:15 pm
I'm ready, we have to wait until @Leledumbo updates the repository. So please be patient...
Title: Re: Online Package Manager
Post by: shobits1 on October 24, 2016, 10:55:32 pm
I'm ready, we have to wait until @Leledumbo updates the repository. So please be patient...
Ah,, thank you...
sorry I didn't pay much attention -- I started suspecting my crappy internet connection right away.
Title: Re: Online Package Manager
Post by: balazsszekely on October 24, 2016, 11:00:39 pm
Quote
Ah,, thank you...
sorry I didn't pay much attention -- I started suspecting my crappy internet connection right away.
No problem! I will post a message when everything is up and running.
Title: Re: Online Package Manager
Post by: lainz on October 25, 2016, 03:44:25 pm
Well it's running.

There's a way to send you a new package?
Title: Re: Online Package Manager
Post by: balazsszekely on October 25, 2016, 04:58:51 pm
The new repository is up and running(thank you @Leledumbo!). Please go to https://github.com/getmem/LazOpkMan download then install lazopkman(I commited a few things recently).
What's new:
- support for multiple packages in a single zip
- from now on everyone can create packages for the main repository
- improved GUI
- a lot of bugfix
- I did try to implement all reasonable suggestion from this thread, if I missed something please let me know

To do:
- update from external site(this one will be ready in a few days)
- create a personal repository

The purpose of this release is to populate the main repository with packages. To create a repository package please go to Create-->Create repository package toolbutton, then:
- select the package main directory(lazopkman will recursively search for all package files inside the folder)
- select the packages you wish to include
- choose a category
- adjust package info if necessary(lazarus/fpc compatibility, suppported widgetset, etc)
- press the create button
The whole process should take no longer then 1-2 min/ package. If all goes well you should get a zip and a json file. Upload somewhere the files and send me the link, alternatively you can send it to getmem1@gmail.com . I will wait a week or so then update the main repository agin. A realistic target is 50+ packages.

PS: What about Lazarus Code and Component Repository? Most of the packages are very old. We should include all of them? Who's familiar with the packages inside LCCR?
 
Title: Re: Online Package Manager
Post by: wp on October 25, 2016, 05:22:24 pm
PS: What about Lazarus Code and Component Repository? Most of the packages are very old. We should include all of them? Who's familiar with the packages inside LCCR?
Yes, many of them are in a bad shape. These are the ones that I am using and which I know are fine:
There are probably more good ones, I just did not try them, so I can't tell. Look at the date of the last update, it's a good indicator of how well the package is maintained.

Title: Re: Online Package Manager
Post by: lainz on October 25, 2016, 06:18:00 pm
Hi I sent you 2 new packages by PM.
Title: Re: Online Package Manager
Post by: rvk on October 25, 2016, 06:43:11 pm
Maybe it's a good idea to add a submission form to the manager (or one somewhere online) from where you get a uniform request for adding a package or updating one. The required json could even be generated through that so that you would only need to review the request before adding it.

Otherwise you'll get a lot of request in a lot of different ways.
Title: Re: Online Package Manager
Post by: lainz on October 25, 2016, 06:54:44 pm
It's a good idea. The form can send you an email with the details. I think is better to add it to the package manager to ensure at least is a Lazarus programmer that sends the request. Spammers will be less, not zero but less.

Edit: The package BGRA Controls I sent you is OK
https://github.com/bgrabitmap/bgracontrols/releases/download/v4.3.1/bgra_controls_431.zip

but the BGRA Controls FX I sent you is now outdated, you need to get it from here:
https://github.com/bgrabitmap/bgracontrolsfx/releases/download/v0.1.4/bgra_controls_fx_014.zip

Edit2: The package bgrabitmap that's in the repository has the wrong category, it must be Graphics.
Title: Re: Online Package Manager
Post by: balazsszekely on October 25, 2016, 08:05:11 pm
@wp
Thanks! Tomorrow I will add packages to the main repository. I have a question though: when you modify something in one of the packages you replace the zip file? I would like to know if the download link stays the same(this is true on github).

@rvk
Good idea! I' m skeptical though about the large number of request.  :D  I will go with an FTP server because in order to send mails the user must install OpenSSL library.

@lainz
Congratulation! You're the first one who submits two valid packages. You forget the download links though:
https://github.com/bgrabitmap/bgracontrolsfx/archive/master.zip
https://github.com/bgrabitmap/bgracontrols/archive/master.zip

Is the package creation form intuitive? How can we improve it?

Quote
The package bgrabitmap that's in the repository has the wrong category, it must be Graphics.
Thanks! The category is not displayed correctly in the three. I will fix it soon.
Title: Re: Online Package Manager
Post by: molly on October 25, 2016, 08:10:53 pm
Congratulation! You're the first one who submits two valid packages. You forget the download links though:
https://github.com/bgrabitmap/bgracontrolsfx/archive/master.zip
https://github.com/bgrabitmap/bgracontrols/archive/master.zip
Not wanting to play a party pooper there but, how do you know master is in fact the (stable) release of those packages ?

Different people uses different git-flows, e.g. one uses master as development branch and use release tags, others let master be the latest (stable) release.
Title: Re: Online Package Manager
Post by: lainz on October 25, 2016, 08:21:43 pm
Yes I use the GitHub releases to mark a stable release.

Master by default is the work in progress for these two packages.

A link to the releases page will be OK, not directly to any file.

Bgrabitmap is the same. But uses source forge. The releases in GitHub are for lazpaint only.

The creation of the package was easy. I need to copy my GitHub repository to an other folder to avoid the .git folder being included in the zip file.
Title: Re: Online Package Manager
Post by: balazsszekely on October 25, 2016, 08:24:28 pm
Quote
@molly
Not wanting to play a party pooper there but, how do you know master is in fact the release of those packages ?
I don't, but the package developer does know I suppose  :D. The user will decide if he/she updates the package from the external link or use the default one from the main repository. By the way multiple version of the same package is also allowed.

Did you test it @molly? Feedback is welcome.
Title: Re: Online Package Manager
Post by: molly on October 25, 2016, 09:15:13 pm
Did you test it @molly? Feedback is welcome.
I have now  :D

At first sight things are looking good and polished (it is a form of art so, worth to mention).

The two things that annoyed me (sorry, there is no way for me to tell it more gently).
1) if i press right mouse button to view the json file, i seem unable to 'return' to the initial packager view. All things i tried (click close, escape etc) closes the window (which is not what i wanted).

2) i chose to automatically extract the package, which automatically seems to popup a windows explorer window at the location where the package was extracted. I absolutely most definitely despise those windows popping up as i do not use Windows explorer _ever_ (which is more my personal problem ofc.) :-)

For 1, it needs a solution in the end (unless i missed something obvious) for 2 i would be in your debt in case there is a possibility to prevent that from happening.


In case not already having considered, i would have expected the download location to be part of the options inside the online package manager. At least don't let me start selecting a directory from my computer top-level but in user dir or lazarus dir (i usually install my packages alongside lazarus install dir for lazarus 1.7 series).

After i managed to convince my firewall that lazarus indeed requires some internet access (all requesters before that worked splendid as far as i am able to tell) the list was populated with about 8 packages. The treeview is easy to view and works as expected.

Downloading and extracting seems to have worked like a breeze, at least i did not encounter any issues.

Question: I assume (?) that you also add support for installing the packages, in which case the question pops up: what if i already installed packages manually ? would the online package manager be able to detect that and not try to install the same package twice ?

There are many of such questions that comes to mind but, i promised to keep myself out of things until things become more stable for you. There is no point in speculating until things become more clear for you and you have set a more definitive goal for yourself. Especially because "i want it all, and i want it now" (think electrical guitars and high pitched voices ;-) )

I have to congratulate you on your progress, as things that work seem to work as expected for me. In that regards never mind my encountered annoyances. Most probably you are aware of them already anyways.

Thank you for your hard work on this and actually realizing something that should have been done/implemented ages ago.

edit:
Oh, i almost forgot. If no package selected, download button is active. Dunno how hard it would be for virtualTV to determine number of selected items, otherwise can be solved adding a counter at onclick event/on check event and only activate download button when items are actually selected ? Would imho be better than the nice message box you now show :)
Title: Re: Online Package Manager
Post by: shobits1 on October 25, 2016, 09:28:18 pm
What does `available since` means?? (confused)
does it mean when the package has first seen on the server OR it is the update date for updated packages.
Title: Re: Online Package Manager
Post by: frakno on October 25, 2016, 09:43:47 pm

Quote
@molly
1) if i press right mouse button to view the json file, i seem unable to 'return' to the initial packager view. All things i tried (click close, escape etc) closes the window (which is not what i wanted).

Have you tried   right click  -> hide json ????

that works great
Title: Re: Online Package Manager
Post by: balazsszekely on October 25, 2016, 10:01:06 pm
@molly
Thank you for testing!

Quote
The two things that annoyed me (sorry, there is no way for me to tell it more gently).
1) if i press right mouse button to view the json file, i seem unable to 'return' to the initial packager view. All things i tried (click close, escape etc) closes the window (which is not what i wanted).
Right click again on the JSON memo, a menu should pop up with "Hide JSON" item. This feature was introduced for debugging purposes, I will probably remove it at the end.

Quote
2. 2) i chose to automatically extract the package, which automatically seems to popup a windows explorer window at the location where the package was extracted. I absolutely most definitely despise those windows popping up as i do not use Windows explorer _ever_ (which is more my personal problem ofc.) :-)
Interestingly enough other people like this feature, but I understand your point. You will be able to set the default behaviour in the options. It's not yet implemented.
Quote
In case not already having considered, i would have expected the download location to be part of the options inside the online package manager. At least don't let me start selecting a directory from my computer top-level but in user dir or lazarus dir (i usually install my packages alongside lazarus install dir for lazarus 1.7 series).
Under linux, osx the lazarus install dir sometimes is read only.

Quote
Question: I assume (?) that you also add support for installing the packages, in which case the question pops up: what if i already installed packages manually ? would the online package manager be able to detect that and not try to install the same package twice ?
I will answer with a screenshot.

Quote
I have to congratulate you on your progress, as things that work seem to work as expected for me. In that regards never mind my encountered annoyances. Most probably you are aware of them already anyways.
Thank you for your hard work on this and actually realizing something that should have been done/implemented ages ago.
Thank you!

Quote
Oh, i almost forgot. If no package selected, download button is active. Dunno how hard it would be for virtualTV to determine number of selected items, otherwise can be solved adding a counter at onclick event/on check event and only activate download button when items are actually selected ? Would imho be better than the nice message box you now show :)
It would be trivial to implement, not very high on the priority list, but I will do it.

Quote
@shobits1
What does `available since` means?? (confused)
does it mean when the package has first seen on the server OR it is the update date for updated packages.
When the package has first seen on the server.
Title: Re: Online Package Manager
Post by: wp on October 25, 2016, 10:03:43 pm
@wp
Thanks! Tomorrow I will add packages to the main repository. I have a question though: when you modify something in one of the packages you replace the zip file? I would like to know if the download link stays the same(this is true on github).
I must confess that I did not follow this thread in detail. Your remark indicates that you need a zip file for the Package Manager. This may be a problem. Much of the work that I put into ccr is work in progress, and I only rarely update the released zip files. When I do I will always add a version number to keep the history. The download link, therefore, will change. But of course I could provide a copy of the current release under a standard name, i.e. the current release of fpspreadsheet (fpspreadsheet-1.6.2.zip (https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.6.2.zip/download)) could be provided also as fpspreadsheet.zip, or fpspreadsheet-release.zip.

As far as I know SourceForge svn does not create snapshots of the development versions in the individual source folders. So, there is not explicit zip snapshot of the current trunk version of, e.g., fpspreadsheet. There is one big snapshot but it contains the entire ccr repository.
Title: Re: Online Package Manager
Post by: balazsszekely on October 25, 2016, 10:21:02 pm
Quote
As far as I know SourceForge svn does not create snapshots of the development versions in the individual source folders. So, there is not explicit zip snapshot of the current trunk version of, e.g., fpspreadsheet. There is one big snapshot but it contains the entire ccr repository.
This is exactly what I'm looking for(explicit snapshot of the current trunk).
I believe I found the link(ex: color palette): https://sourceforge.net/code-snapshots/svn/l/la/lazarus-ccr/svn/lazarus-ccr-svn-5294.zip

ps: No! You're right, it's the entire ccr repository.
ps1:
Quote
But of course I could provide a copy of the current release under a standard name, i.e. the current release of fpspreadsheet (fpspreadsheet-1.6.2.zip) could be provided also as fpspreadsheet.zip, or fpspreadsheet-release.zip.
That would be helpful. Thanks! On github things are much easier.
Title: Re: Online Package Manager
Post by: molly on October 25, 2016, 10:34:42 pm
Have you tried   right click  -> hide json ????

that works great

Right click again on the JSON memo, a menu should pop up with "Hide JSON" item. This feature was introduced for debugging purposes, I will probably remove it at the end.

Oops. I completely overlooked that one  :-[

Thank you both for showing me my own stupidity  :D

Edit:
@GetMem:
Thank you for your answers, i can live with those given :) Extremely thank you for the screenshot, as that answers some other questions i had as well  :)
Title: Re: Online Package Manager
Post by: lainz on October 25, 2016, 10:57:36 pm
The server containing the repository needs something special? Edit (Seems that not).

Because if not (for example is just a json and zip files) you can use GitHub: create a new git repository and use it as website with github pages, then you can upload new packages using tortoisegit or your favourite tool and the changes are automatic.

You can add trusted users that will contribute uploading packages too for that repository. In fact will be better to create a github organization and manage user groups from that place.

In fact you can use your existing github account and repository, just add a new branch that will contain the packages.

If you need help just ask.-
Title: Re: Online Package Manager
Post by: JuhaManninen on October 26, 2016, 01:07:32 am
Quote
@molly
Not wanting to play a party pooper there but, how do you know master is in fact the release of those packages ?
I don't, but the package developer does know I suppose  :D. The user will decide if he/she updates the package from the external link or use the default one from the main repository. By the way multiple version of the same package is also allowed.
In both cases some admin work is required. The JSON file must be updated with the package's version info etc.
I don't think this can be automated as there must be control over the trusted package sources.

But of course I could provide a copy of the current release under a standard name, i.e. the current release of fpspreadsheet (fpspreadsheet-1.6.2.zip (https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.6.2.zip/download)) could be provided also as fpspreadsheet.zip, or fpspreadsheet-release.zip.
It does not make much difference as the JSON file must be updated anyway.
BTW, you just provided a ZIP-file link to SourceForge server. Clearly it is possible although GetMem doubted it earlier.

I don't think the package manager should in general provide latest development (trunk) versions. The latest "stable" release should be the default.
There can be exceptions like the CCR packages without a maintainer. They have never been stable. Any bug fix they get makes them better. Yet those bug fixes happen so seldom that the package manager maintenance is not a burden either.

Title: Re: Online Package Manager
Post by: JuhaManninen on October 26, 2016, 01:18:14 am
The server containing the repository needs something special? Edit (Seems that not).

Because if not (for example is just a json and zip files) you can use GitHub: create a new git repository and use it as website with github pages, then you can upload new packages using tortoisegit or your favourite tool and the changes are automatic.

It is better to have a proper server. It allows more options in future, including a server side SW to handle user feedback and grading / voting system.
GitHub can be later supported in the same way that Delphinus does now, as an alternative to the contralized server.

Quote
If you need help just ask.-

Somebody could start to think about the server side SW. Something similar with NuGet maybe ...
Title: Re: Online Package Manager
Post by: lainz on October 26, 2016, 01:58:52 am
You are right. Also both GitHub and source forge has a limit in bandwidth, having an own server it can be managed as it grows.

About the server side software I have a poor experience in PHP only. So I'm not the indicated. But maybe is a ready to use solution out there that can be adapted to the repository needs.
Title: Re: Online Package Manager
Post by: balazsszekely on October 26, 2016, 06:44:54 am
Quote
@Juha
It does not make much difference as the JSON file must be updated anyway.
BTW, you just provided a ZIP-file link to SourceForge server. Clearly it is possible although GetMem doubted it earlier.
Then I fail to see the purpose of the external download link. If the json must be updated each time, it's better to update the package itself, with the automated tool it takes only 1 minute or so. The external link should point to the trunk perhaps? Pointing to a stable version makes no sense at all.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 26, 2016, 08:46:35 am
Then I fail to see the purpose of the external download link. If the json must be updated each time, it's better to update the package itself, with the automated tool it takes only 1 minute or so. The external link should point to the trunk perhaps? Pointing to a stable version makes no sense at all.
Ok, I was thinking of the updated package's version number. I thought it should be visible in the list of available packages. Maybe it is not important, the versions of installed packages are visible anyway.

Having an external link to a stable version makes a lot of sense if the package author can update the package by himself without bothering the maintainer.
Now the changed version info cannot be transferred but we can figure out a way to do that, too, if needed.

In my opinion revision control tools (SVN, Git etc.) are still the best way to get latest cutting edge development versions, at least for packages that are actively developed.
A package author can of course provide development snapshots for package manager, in addition to stable releases, if he has time and energy.
Title: Re: Online Package Manager
Post by: Groffy on October 26, 2016, 12:21:23 pm
Hi,

is it somehow possible to configure a connection with a proxy in between?

Thanks for the great work!
Title: Re: Online Package Manager
Post by: minesadorada on October 26, 2016, 12:27:45 pm
...
It is better to have a proper server. It allows more options in future, including a server side SW to handle user feedback and grading / voting system.
GitHub can be later supported in the same way that Delphinus does now, as an alternative to the contralized server.
..

+1
A repository of packages will only be as good as its maintenance.  This will surely include user feedback - and someone to take notice of it.
If there were only a simple voting system to start with, it would be very useful to potential users.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 26, 2016, 02:26:47 pm
If there were only a simple voting system to start with, it would be very useful to potential users.
No, initially there will not be even a simple voting system. It requires server side SW.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 26, 2016, 03:24:32 pm
I understood some people used the
 Repository  ->  "Create repository package"
feature of the package manager. Is it so?
I tested it with some existing Lazarus packages under Components/ directory, for example with aggpas.
After selecting an output directory the GUI says:
 "Compressing package. Please wait ..."
and it continues forever. Only the Cancel button stops it. A package was created anyway but my ZIP tool (Ark) says it is corrupt, although it shows the contents which look OK to me.

Does it work for others? I can try to debug it.
My system is a 64-bit Manjaro Linux. Could it be a 64-bit issue?
Title: Re: Online Package Manager
Post by: minesadorada on October 26, 2016, 03:34:37 pm

Does it work for others? I can try to debug it.
My system is a 64-bit Manjaro Linux. Could it be a 64-bit issue?
Environment: Win 10 64-bit
I downloaded and installed the package manager today and did the same test as you.  It zipped the component folder quickly (though the manufactured zip contained the /backup and /lib folders which doesn't seem good).
I have WinZip on my system as default archiver.

Maybe it's a linux thing?
Title: Re: Online Package Manager
Post by: molly on October 26, 2016, 03:49:45 pm
I understood some people used the
 Repository  ->  "Create repository package"
feature of the package manager. Is it so?
No i did not but, i have now  :)

Same aggpass example on win32 with lazarus trunk from end of sept.

When the archiving is done (e.g. after "Compressing package. Please wait ..."), an explorer window pops up *grmbl*  ;) pointing to the directory where the .zip file was created (my selection during creation) and a information message dialog pops-up saying "Repository Package successfully created".

PS: most likely a 64 bit thing as the zipper classes had a fair amount of patching for that (i am not sure if there are still bug-reports open for that and how new GetMem's version is).
Title: Re: Online Package Manager
Post by: lainz on October 26, 2016, 04:13:28 pm
It works fine when I created the bgracontrols and bgracontrolsfx packages under Windows 10 x64, but with lazarus 32 bit so I can't say if it's a problem of x64.
Title: Re: Online Package Manager
Post by: balazsszekely on October 26, 2016, 04:32:27 pm
@Groffy
Quote
is it somehow possible to configure a connection with a proxy in between?
Not yet! I will add that option later.

@Juha
Once I saw that error under linux. It comes from zippper.pp unit(fpc). Please download the latest version, it will display a more meaningful message.
Title: Re: Online Package Manager
Post by: JuhaManninen on October 26, 2016, 09:08:37 pm
Once I saw that error under linux. It comes from zippper.pp unit(fpc). Please download the latest version, it will display a more meaningful message.
It is caused by wrong type of file attributes in the zipper. I always test code with compiler checks and debug flags set, thus an overflow interrupted it.
I reported the issue with a patch:
 http://bugs.freepascal.org/view.php?id=30800
The same change can be made to your copy.
However I recommend that you create a patch of your new zipper events against the latest FPC trunk which now has many changes related to Unicode and other parts, too.
When it is applied, we can copy the latest version from FPC trunk without worries.
The same goes with your http client fork.

[Edit] Now that the zipper works, I got a valid ZIP file and also a JSON file.
If the idea is to download an extra JSON file from the remote URL then it solves the version number problem.
My understanding is that now only the central server has a JSON file.

With aggpas I got:
Code: [Select]
{
  "PackageData0" : {
    "Name" : "aggpas",
    "Category" : 2,
    "RepositoryFileName" : "aggpas.zip",
    "RepositoryFileSize" : 2943239,
    "RepositoryFileHash" : "aa2d6ca1dd9b54f6d1c607cc260aa588",
    "RepositoryDate" : 4.2669000000000000E+004,
    "PackageBaseDir" : "aggpas\\\/"
  },
  "PackageFiles0" : [
    {
      "Name" : "aggpaslcl.lpk",
      "Description" : "AggPas canvas for LCL",
      "Author" : "Mattias Gaertner,  Milan Marusinec",
      "License" : "Permission to copy, use, modify, sell and distribute this software is granted provided this copyright notice appears in all copies.\nThis software is provided \"as is\" without express or implied warranty, and with no claim as to its suitability for any purpose.",
      "RelativeFilePath" : "lazarus\\\/",
      "VersionAsString" : "1.0.0.0",
      "LazCompatibility" : "1.6, Trunk",
      "FPCCompatibility" : "2.6.4, 3.0.0",
      "SupportedWidgetSet" : "win32\/64, gtk2, carbon",
      "PackageType" : 2,
      "DependenciesAsString" : "LCL, FCL(1.0.0.0)",
      "HomePageLink" : "",
      "DownloadLink" : ""
    }
  ]
}
Title: Re: Online Package Manager
Post by: balazsszekely on October 26, 2016, 10:51:04 pm
@Juha
Quote
I always test code with compiler checks and debug flags set, thus an overflow interrupted it.
Me too, however under Kali Linux(32 bit) the error does not occur.
Quote
The same change can be made to your copy.
However I recommend that you create a patch of your new zipper events against the latest FPC trunk which now has many changes related to Unicode and other parts, too.
When it is applied, we can copy the latest version from FPC trunk without worries.
The same goes with your http client fork.
Thanks for the patch, I will apply it soon. I did try the httpclient from FPC trunk once, but there was a reference to another unit.  I did not want to copy more then one file.

Quote
Now that the zipper works, I got a valid ZIP file and also a JSON file.
If the idea is to download an extra JSON file from the remote URL then it solves the version number problem.
My understanding is that now only the central server has a JSON file.
If somebody submits a repository package, the json file will be integrated into the main JSON. I'm not sure yet what would be the optimal solution for remote URL's.
Anyway things are looking good, we already have 20 packages in the main repository.
Title: Re: Online Package Manager
Post by: rvk on October 26, 2016, 11:20:54 pm
You might want to add onlinepackagemanager to the repository so we can update the manager itself to the latest version easily :D

(I don't see that one yet in your localhost repository)

Or will there be some self-auto-updater?
Title: Re: Online Package Manager
Post by: balazsszekely on October 27, 2016, 06:10:08 am
Quote
@rvk
You might want to add onlinepackagemanager to the repository so we can update the manager itself to the latest version easily :D
+1. Added.
Title: Re: Online Package Manager
Post by: avra on October 31, 2016, 11:30:15 am
Quote
In case not already having considered, i would have expected the download location to be part of the options inside the online package manager. At least don't let me start selecting a directory from my computer top-level but in user dir or lazarus dir (i usually install my packages alongside lazarus install dir for lazarus 1.7 series).
Under linux, osx the lazarus install dir sometimes is read only.
How about remembering last download location?
Title: Re: Online Package Manager
Post by: Groffy on October 31, 2016, 12:04:03 pm
Quote
+1. Added.

Can't see it in the repository. Is the adress http://104.199.177.61/ still correct?

Thanks
Title: Re: Online Package Manager
Post by: balazsszekely on October 31, 2016, 12:11:37 pm
Quote
@avra
How about remembering last download location?
Consider it done.

Quote
@Groffy
Can't see it in the repository. Is the adress http://104.199.177.61/ still correct?
Yes, but it's not updated yet. I'm still waiting for packages.
Title: Re: Online Package Manager
Post by: macmike on October 31, 2016, 12:27:26 pm
Great work, this is brilliant
Title: Re: Online Package Manager
Post by: JuhaManninen on October 31, 2016, 02:15:47 pm
Yes, but it's not updated yet. I'm still waiting for packages.
I copy here GetMem's earlier instructions in this same thread. The thread is long and they may get buried and forgotten.
---
To create a repository package please go to Create-->Create repository package toolbutton, then:
- select the package main directory(lazopkman will recursively search for all package files inside the folder)
- select the packages you wish to include
- choose a category
- adjust package info if necessary(lazarus/fpc compatibility, suppported widgetset, etc)
- press the create button
The whole process should take no longer then 1-2 min/ package. If all goes well you should get a zip and a json file. Upload somewhere the files and send me the link, alternatively you can send it to getmem1@gmail.com . I will wait a week or so then update the main repository agin. A realistic target is 50+ packages.
---

One thing: the Create --> "Create repository package" feature should have a filter for file types. Now everything is included. Maybe something similar to the Publish Project filter in Lazarus.
Title: Re: Online Package Manager
Post by: rvk on October 31, 2016, 02:23:46 pm
Yes, but it's not updated yet. I'm still waiting for packages.
I copy here GetMem's earlier instructions in this same thread. The thread is long and they may get buried and forgotten.
Should this only be done by the maintainer of those packages or can anybody submit random packages?

Also... what to do with packages which don't have maintainers (or maintainers who are not part of the Lazarus community like for Ararat Synapse)?
Title: Re: Online Package Manager
Post by: balazsszekely on October 31, 2016, 02:53:33 pm
Quote
@rvk
Should this only be done by the maintainer of those packages or can anybody submit random packages?
Anyone can submit any package. In a worse case scenario we will have a few duplicates, I will filter them out. Different versions of the same package is also allowed.

Quote
Also... what to do with packages which don't have maintainers (or maintainers who are not part of the Lazarus community like for Ararat Synapse)?
Even more important to submit it. I already added Ararat Synapse because it's a well known package, but my knowledge is limited.

So far we have 32 packages:
Quote
bgra_controls
bgra_controls_fx
bgrabitmap9.2.1
cmdline
colorpalette
csvdocument
dcpcrypt-2.0.4.1
epiktimer
eyecandycontrols_0-9-6
FileMenuHandler
fortes4lazarus 3.24
fortesreport-ce4
fpspreadsheet
HistoryFiles
indy10.6.2.0
jujiboutils
lclextensions-0.6
mplayer0.1.2
OnlinePackageManager
playsoundpackage
plotpanel-lazarus-0.97.1
powerpdf_0.9.14
richmemo1.0
ringwatch
SMNetGradient2.0.6
spktoolbar
synapse40
tvplanit
uniqueinstance
virtualtreeview-4.8.7-R4
virtualtreeview-5.5.3-R1
zeosdbo-7.1.4

PS: We can always extend the package list. There is no time limit. It would be nice though to have 50+ packages to test the functionality of lazopkman.
Title: Re: Online Package Manager
Post by: Groffy on October 31, 2016, 03:23:24 pm
Quote
PS: We can always extend the package list. There is no time limit. It would be nice though to have 50+ packages to test the functionality of lazopkman.

What about the KControls component suite package? They are really great, coming with a powerful grid component.
Title: Re: Online Package Manager
Post by: rvk on October 31, 2016, 03:25:24 pm
I see for Synapse you took the "stable" version 40.
It might also be a good idea to include (or replace it with) the trunk version.
https://sourceforge.net/p/synalist/code/HEAD/tree/trunk/

The stable version 40 is very very old and the trunk version is considered stable enough.
(There are some minor issues with v40 and it's always advised, also here on the forum, to take the trunk version of Synapse, which hasn't changed since februari 2015)
Title: Re: Online Package Manager
Post by: wp on October 31, 2016, 03:46:08 pm
What about the KControls component suite package? They are really great, coming with a powerful grid component.
I would second that. But there is the usual problem of finding the correct sources. The version in ccr is doing fine, but I think it is out-dated. The version on the original site (http://www.tkweb.eu/en/delphicomp/) seems to be last modified in April this year, much more recent. The message is signed by a user "tk". The same name exists also in this forum.

@tk: Are you the author of KControls? If yes: Which is the best version to be included in the Package Manager?
Title: Re: Online Package Manager
Post by: balazsszekely on October 31, 2016, 09:13:57 pm
Ok, I added:
- Synapse trunk(lpk version 40.1.0.0)
- KControls_1.7(in order to compile, I had to modify the source)
Title: Re: Online Package Manager
Post by: minesadorada on October 31, 2016, 09:27:21 pm
When I used OnlinePackageManager to create a package, it zips up both the /backup and /lib folders if they exist.  This is obviously not a good idea.

Is that current behaviour?
Title: Re: Online Package Manager
Post by: balazsszekely on October 31, 2016, 09:53:21 pm
Quote
When I used OnlinePackageManager to create a package, it zips up both the /backup and /lib folders if they exist. 
Don't worry about the /backup and /lib folder, I will remove them manually.
Quote
This is obviously not a good idea.
I agree. I can add a feature that skips the /backup and /lib folder, however this won't prevent someone with malicious purpose. A manual check is mandatory.

PS: If you have a package, please send it to me.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 01, 2016, 01:00:15 am
Yes, the Zip file should not contain anything extra. Download traffic should be kept low.
Marc asked me for the needed size and traffic. I could only estimate it is low, even with the DB which will contain only textual data.

If the package manager causes an explosion of Lazarus' popularity, as it may happen, then the traffic could be a problem...
This will be as popular as Visual Studio or NetBeans. Millions of people install packages at the same time. The server overheats and glows red trying to serve them all. :)
Title: Re: Online Package Manager
Post by: lainz on November 01, 2016, 02:11:40 am
Hope it does as you said  :D
Title: Re: Online Package Manager
Post by: balazsszekely on November 01, 2016, 06:46:57 am
Quote
@Juha
Yes, the Zip file should not contain anything extra. Download traffic should be kept low.
What about documentation, demos(source only)? The total size of the 34 packages is 26.9 MB, it's less then 1MB/package. With today standard 26.9 MB it's a small footprint. Even 100 MB would be small. 

Quote
Marc asked me for the needed size and traffic. I could only estimate it is low, even with the DB which will contain only textual data.
Perhaps @Leledumbo can give us some info about the traffic. He's running the repository for almost a month.

PS: The Lazarus popularity can be increased by supporting mobile/web development and a more straightforward cross-compiling.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 01, 2016, 12:53:24 pm
What about documentation, demos(source only)? The total size of the 34 packages is 26.9 MB, it's less then 1MB/package. With today standard 26.9 MB it's a small footprint. Even 100 MB would be small. 
Sure they can be included, as well as any resource files needed by a package. I was only worried about compiled binary files included accidentally.
Anything below 1GB is small in today's standards. I estimated a few GB will be needed even with the server SW + DB in future. Not much really.

---
Earlier there was discussion about including snapshots of development versions of some packages.
It is a diffucult issue with packages which don't have a maintainer. Nobody makes release versions of them. The Online Package Manager admin must take some revision from the commit history and "release" it. What if it crashes? Is it his responsibility to find a revision that does not crash?
This issue is a swamp.
Now initially it doesn't matter because everybody is enthusiastic. After some years however people get bored with such admin work. The packages without a maintainer are forgotten even if their master source got some fixes.
The goal is that all packages have a maintainer but it is not realistic. I was surprised to learn that even well-known packages like Synapse have no recent releases. It has a maintainer after all.

We are now solving the same problem that CCR repo tried to solve years ago. The idea was that all Lazarus packages can be found easily in one place. They are under revision control, thus their maintainers can easily develop them.
Well, it has not worked very well. Most package authors have fleed.
There is a danger that we end up with a similar outdated system. Most packages are not maintained and to get their latest fixes you must use revision control directly anyway.
Maintained packages are our hope. The Online Package Manager should be easy and attractive for their maintainers. That's why the remote URL should be supported, so that trusted sources can be updated as easily as possible.
How to make it more attractive? How to get people to maintain packages? Uhhh...

I am not criticizing GetMem's efforts obviously. I am looking to the future years ahead. The maintenance cannot depend on one person eternally, it must be made sustainable.
Title: Re: Online Package Manager
Post by: lainz on November 01, 2016, 01:00:11 pm
If size needs to be really low I must trim test projects that are most the size of bgracontrols, a lot of tests  ::) nothing more than 4 or 3 mb  :D

About the mantainer I agree, I want to be myself that uploads the new versions directly. Then aproved or not it needs more people than only one that reviews, if is the case.

Why don't use GitHub directly, SF can't be used without the trick of the redirection (is in the wiki to get direct downloads from sf) or picking manually the mirror.

You can create a new repository called packages, create releases and put there the files and that's all. Then instead of having to upload to your server the file uses the github one (you miss the server load in this case, all goes to github) and link it to the package as is currently beign doing for the alternate download, well instead of beign alternate just main.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 01, 2016, 01:24:57 pm
You can create a new repository called packages, create releases and put there the files and that's all. Then instead of having to upload to your server the file uses the github one (you miss the server load in this case, all goes to github) and link it to the package as is currently beign doing for the alternate download, well instead of beign alternate just main.
I think the remote URL feature already supports that.
Later a support for all GitHub repositories can be added, like Delphinus has now. It is a different concept however, it allows any package without any checks to pass. The user must be informed about it when he enables that option.
Title: Re: Online Package Manager
Post by: balazsszekely on November 01, 2016, 01:44:27 pm
@Juha
Quote
Earlier there was discussion about including snapshots of development versions of some packages.
It is a diffucult issue with packages which don't have a maintainer. Nobody makes release versions of them. The Online Package Manager admin must take some revision from the commit history and "release" it. What if it crashes? Is it his responsibility to find a revision that does not crash?
This issue is a swamp.
Now initially it doesn't matter because everybody is enthusiastic. After some years however people get bored with such admin work. The packages without a maintainer are forgotten even if their master source got some fixes.
The goal is that all packages have a maintainer but it is not realistic. I was surprised to learn that even well-known packages like Synapse have no recent releases. It has a maintainer after all.
For the first time, I'm not following you  :D. If somebody doesn't want to maintain his package, there is little you can do about it.

Quote
We are now solving the same problem that CCR repo tried to solve years ago. The idea was that all Lazarus packages can be found easily in one place. They are under revision control, thus their maintainers can easily develop them.
Well, it has not worked very well. Most package authors have fleed.
There is a danger that we end up with a similar outdated system. Most packages are not maintained and to get their latest fixes you must use revision control directly anyway.
Maintained packages are our hope. The Online Package Manager should be easy and attractive for their maintainers. That's why the remote URL should be supported, so that trusted sources can be updated as easily as possible.
The update feature will be ready tomorrow. Next week I plan to add SVN support. It shouldn't be to difficult. In a month or so the ''personal repository" feature will be also available. Everyone can create a whole repository, store it on GitHub for example. LazOpkman will be able to load multiple repositories at the same time.

Quote
@lainz
If size needs to be really low I must trim test projects that are most the size of bgracontrols, a lot of tests  ::) nothing more than 4 or 3 mb  :D
Don't trim anything. Although bgracontrols is one of the biggest package, still way below the upper limit. After all is a complex package.
Title: Re: Online Package Manager
Post by: wp on November 01, 2016, 02:28:10 pm
Here one more ccr package: lazbarcodes. I don't use it, but I checked it with Laz trunk/1.6 / fpc3.0/trunk: compiling fine, and a simple test runs without any issues. And I remember that there are a few users here in the forum using it, I had fixed one or two issues for them. So, I think, lazbarcodes should be included.

I uploaded a "release" snapshot to the Files section of SourceForce: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/ (https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/)
Title: Re: Online Package Manager
Post by: balazsszekely on November 01, 2016, 05:39:54 pm
Thank you @wp!
I added lazbarcodes to the main repository.
Title: Re: Online Package Manager
Post by: minesadorada on November 02, 2016, 12:56:23 pm
I will have some packages to add, but first I am testing them with Laz 1.7 and fpc3.1.1, Windows and Linux.
There are UTF8 issues to tweak on some of them for instance.
Title: Re: Online Package Manager
Post by: minesadorada on November 03, 2016, 03:21:33 pm
In the ccr svn repositry https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/
There are:
1. lazautoupdate
2. longtimer
3. playsoundpackage
4. poweredby
5. scrolltext


All are currently maintained.


I was unable to package them in OPM.  I downloaded & installed today, but it crashed itself and Lazarus (Laz1.7/fpc3.1.1 Win64)  I assume it's still under development.

Title: Re: Online Package Manager
Post by: wp on November 03, 2016, 04:14:04 pm
@minesadorada: Thank you for bringing the attention to these nice components (the playsoundpackage has already been included).

A few questions/remarks to these components

lazautoupdate:
I saw that you distribute synapse along with this component. I don't know, but wouldn't it be better if you just provide the download link?

Or even better: As I can see (I may be wrong) you use synapse only to download files from their web sites. You should be able to do this also with fphttpclient that comes along with fpc (see folder packages/fcl-web/base). Reducing external depencies is always a good objective.

In the package file, you add the synapse.lpk package file to the "files" section of the lazupdate section. Why? I fear this will sooner or later cause trouble for those users who already have synapse installed (like myself), because it will end up in a version mixup of the already installed files and the files added by your package.

All packages:
All packages have a requirement of the ideintf package. I think this is not good because it pulls all the designtime code into your application. The correct way, in my opinion, would be to split the stuff into two packages, the runtime package containing all the runtime stuff (your unit code plus LCL), and the designtime package for the work with form editor and object inspector (ideintf plus your aboutbox)

P.S. I know that "my" tvplanit does the same - but these components were written a long time ago by TurboPower when nobody was aware of this issue, it will be fixed in one of the next releases.

Title: Re: Online Package Manager
Post by: minesadorada on November 03, 2016, 04:34:32 pm
@minesadorada: Thank you for bringing the attention to these nice components (the playsoundpackage has already been included).

A few questions/remarks to these components

lazautoupdate:
I saw that you distribute synapse along with this component. I don't know, but wouldn't it be better if you just provide the download link?

Or even better: As I can see (I may be wrong) you use synapse only to download files from their web sites. You should be able to do this also with fphttpclient that comes along with fpc (see folder packages/fcl-web/base). Reducing external depencies is always a good objective.

In the package file, you add the synapse.lpk package file to the "files" section of the lazupdate section. Why? I fear this will sooner or later cause trouble for those users who already have synapse installed (like myself), because it will end up in a version mixup of the already installed files and the files added by your package.

All packages:
All packages have a requirement of the ideintf package. I think this is not good because it pulls all the designtime code into your application. The correct way, in my opinion, would be to split the stuff into two packages, the runtime package containing all the runtime stuff (your unit code plus LCL), and the designtime package for the work with form editor and object inspector (ideintf plus your aboutbox)

P.S. I know that "my" tvplanit does the same - but these components were written a long time ago by TurboPower when nobody was aware of this issue, it will be fixed in one of the next releases.


Hi wp,

lazautoupdate:  I include synapse so that the component installs and works smoothly.  In my own case, if a package complains about missing stuff when I first install it, then I look for an alternative, and I suspect others do the same.  The synapse version is 40 stable, and proven to work with the component.  I have no plans to rewrite the component to use fphttpclient without a powerful reason for doing so.

All Packages:  You are probably right about designtime/runtime.  I don't worry about filesizes too much nowadays, but maybe some folk do.

In all cases, it's up to you if you want to include the packages as is in OPM.  I simply offer them as freely-licensed code which is maintained.
Of course, you are free to change/patch them if you have the time or inclination.  They are all LGPL2.

I appreciate the feedback - it's all constructive.
Title: Re: Online Package Manager
Post by: wp on November 03, 2016, 05:31:24 pm
They are all LGPL2.
This confuses me: You say here that the license is LGPL2, but in the license header of ulazautoupdate you write: "This library is free software; you can redistribute it and/or modify it  under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License..." - this is GPL v2, LGPL would be "GNU Lesser Library General Public License".

So what is valid? Is there a special reason why you don't select the modified LGPL (with linking exception) which is used for all (?) LCL code?
Title: Re: Online Package Manager
Post by: minesadorada on November 03, 2016, 05:41:09 pm
They are all LGPL2.
This confuses me: You say here that the license is LGPL2, but in the license header of ulazautoupdate you write: "This library is free software; you can redistribute it and/or modify it  under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License..." - this is GPL v2, LGPL would be "GNU Lesser Library General Public License".

So what is valid? Is there a special reason why you don't select the modified LGPL (with linking exception) which is used for all (?) LCL code?
Ah - well spotted!  I wrote the code before I properly understood licensing.  Being linkable components, they should all be modified GPL of course.
I'll edit the component source and update the svn - it's a one-line change for each component.

== done ==
Title: Re: Online Package Manager
Post by: wp on November 03, 2016, 05:51:49 pm
Ah - well spotted!  I wrote the code before I properly understood licensing.
Lucky man - I still don't...
Title: Re: Online Package Manager
Post by: minesadorada on November 03, 2016, 06:21:50 pm
All packages now ModifiedGPL and updated in svn.  Also gave me a chance to clean up the Package options, versions etc.
note:: playsound has also been updated in svn

Thanks @wp  :)
Title: Re: Online Package Manager
Post by: balazsszekely on November 03, 2016, 08:38:37 pm
@minesadorada
Thank you! I will add the packages to the main repository:
Quote
1. lazautoupdate
2. longtimer
3. playsoundpackage
4. poweredby
5. scrolltext
In a few days the main repository will be updated again. We have 40+ packages.
Title: Re: Online Package Manager
Post by: wp on November 03, 2016, 09:46:53 pm
GetMem, playsoundpackage is already included, you may have to update it though.
Title: Re: Online Package Manager
Post by: balazsszekely on November 03, 2016, 10:04:23 pm
Quote
GetMem, playsoundpackage is already included, you may have to update it thought.
True. Playsoundpackage is already in the list. Luckily opkman won't allow me to add the same lpk twice. I will update the existing one.
Title: Re: Online Package Manager
Post by: kapibara on November 04, 2016, 12:39:49 am
Sorry I have not read the whole thread, but installed the package manager and got Invalid JSON file on Packages -> Online Package Manager. That happens after the attempt to download package list.

Closing the manager dialog also gave exception in Lazarus.

Latest 64 bit lazarus trunk / Debian
Title: Re: Online Package Manager
Post by: wp on November 04, 2016, 01:05:30 am
Another component from ccr: https://sourceforge.net/projects/lazarus-ccr/files/CalLite/ (see also http://forum.lazarus.freepascal.org/index.php/topic,21093.msg227791.html#msg227791)
Title: Re: Online Package Manager
Post by: minesadorada on November 04, 2016, 06:47:05 am
Sorry I have not read the whole thread, but installed the package manager and got Invalid JSON file on Packages -> Online Package Manager. That happens after the attempt to download package list.

Closing the manager dialog also gave exception in Lazarus.

Latest 64 bit lazarus trunk / Debian
That happened to me.
64-bit Lazarus 1.7 /Win 10 64-bit
Title: Re: Online Package Manager
Post by: minesadorada on November 04, 2016, 06:54:15 am
@minesadorada
Thank you! I will add the packages to the main repository:
Quote
1. lazautoupdate
2. longtimer
3. playsoundpackage
4. poweredby
5. scrolltext
In a few days the main repository will be updated again. We have 40+ packages.
So what is the procedure if I update a package?  Up to now I just used TortoiseSVN to commit to the ccr repository.
Title: Re: Online Package Manager
Post by: balazsszekely on November 04, 2016, 07:18:41 am
@kapibara, @minesadorada
The package manager is still under development. To support update from external link, I had to change the json structure again(hance the invalid json file error). The source code is updated regularly, however I cannot update the repository each day since I' m not hosting it. The next update will be Monday(40+ pacakges, no more json error). If somebody is interested, I can pm a version which works with the current repository(8 packages).
Quote

@minesadorada
So what is the procedure if I update a package?  Up to now I just used TortoiseSVN to commit to the ccr repository.
You don't have to do anything. I will download each package with a SVN client and add them manually to the main repository. In a week or so the SVN feature will be ready. Meaning: we provide the SVN link, on request the package manager will checkout, compile, build install the package(see attachment). This is the plan anyway.
Title: Re: Online Package Manager
Post by: lainz on November 04, 2016, 10:12:45 pm
Hi GetMem, I've updated BGRA Controls v4.3.2 and BGRA Controls FX v0.1.6. Both works with BGRA Bitmap v9.2.1.
Title: Re: Online Package Manager
Post by: kapibara on November 04, 2016, 10:50:17 pm
@GetMem I see, will try again next week then. Great work btw!
Title: Re: Online Package Manager
Post by: balazsszekely on November 05, 2016, 05:10:33 am
Ok. I updated:
   - playsoundpackage
   - BGRA Controls
   - BGRA Controls FX
Added:
   - lazautoupdate
   - longtimer   
   - poweredby   
   - scrolltext   
   - callite     
The list looks like this(40 packages):
Quote
bgrabitmap9.2.1
bgracontrols-4.3.2
bgracontrolsfx-0.1.6
callite
cmdline
colorpalette
csvdocument
dcpcrypt-2.0.4.1
epiktimer
eyecandycontrols_0-9-6
FileMenuHandler
fortes4lazarus 3.24
fortesreport-ce4
fpspreadsheet
HistoryFiles
indy10.6.2.0
jujiboutils
kcontrols_1.7
lazautoupdate
lazbarcodes
lclextensions-0.6
longtimer
mplayer0.1.2
OnlinePackageManager
playsoundpackage
plotpanel-lazarus-0.97.1
poweredby
powerpdf_0.9.14
richmemo1.0
ringwatch
scrolltext
SMNetGradient2.0.6
spktoolbar
synapse40
synapse41
tvplanit
uniqueinstance
virtualtreeview-4.8.7-R4
virtualtreeview-5.5.3-R1
zeosdbo-7.1.4

@minesadorada
I removed synapse from lazautoupdate since it's already in the repository. The package manager recursively search/resolve dependencies when needed. For example if you try to install lazautoupdate the pm. will warn you about the missing dependency and install it automatically(see attachment) unless you explicitly ask not to.
Title: Re: Online Package Manager
Post by: minesadorada on November 05, 2016, 07:38:07 am
@getmem
All my packages have a wiki page - as do most others.  Do you think it would be a good idea to have an [info] link next to the ones that do?
http://wiki.freepascal.org/LazAutoUpdater (http://wiki.freepascal.org/LazAutoUpdater)
http://wiki.freepascal.org/LongTimer (http://wiki.freepascal.org/LongTimer)
http://wiki.freepascal.org/Poweredby (http://wiki.freepascal.org/Poweredby)
http://wiki.freepascal.org/ScrollingText (http://wiki.freepascal.org/ScrollingText)
http://wiki.freepascal.org/playsound (http://wiki.freepascal.org/playsound)
Liking the dependencies feature.  It's going to make Windows users feel like Linux users :)
Title: Re: Online Package Manager
Post by: balazsszekely on November 05, 2016, 07:44:11 am
Quote
@minesadorada
All my packages have a wiki page - as do most others.  Do you think it would be a good idea to have an [info] link next to the ones that do
Yes. I will add the wiki pages.

@all
From now on, as an extra check, each package is compiled before install. If an error occurs during compile, the package will be removed from the install list. Unfortunately this feature only works with Lazarus trunk, since @Juha just recently added the compile procedure to the package interface.
I made a short video. It's kinda boring but illustrates how easy the install process will become(at least in theory).
https://youtu.be/4Sf1yz_aEA8

Ps: If somebody has a package please post the link. Thank you!
Title: Re: Online Package Manager
Post by: rvk on November 05, 2016, 07:56:15 am
I see you called the synapse trunk synapse41. I thought it was version 40.1.0.0. Calling it synapse41 might be confusing as it is not synapse 41.0.
Title: Re: Online Package Manager
Post by: eric on November 05, 2016, 01:39:20 pm
In the confirmation dialog shown in this post: http://forum.lazarus.freepascal.org/index.php/topic,34297.msg227870.html#msg227870
there are some typos. It should read
Quote
Package: "lazupdate.lpk" depends on package: "laz_synapse.lpk". Resolve dependency?
Title: Re: Online Package Manager
Post by: balazsszekely on November 05, 2016, 07:46:07 pm
@minesadorada
Done! Each package default hompage is linked to your wiki page. Thanks.

@rvk
Fixed. "synapse 41.0" is now "synapse40.1".  Thanks.

@eric
Thanks. I fixed the typos.
Title: Re: Online Package Manager
Post by: minesadorada on November 07, 2016, 08:16:51 pm
Hi Getmem,
Can you hold fire on LazAutoUpdate for a bit?  SourceForge changed their downloading protocol, (grr) and the current version of lazautoupdate doesn't cope with it yet.
Title: Re: Online Package Manager
Post by: balazsszekely on November 07, 2016, 11:33:47 pm
Quote
@minesadorada
Can you hold fire on LazAutoUpdate for a bit?
The repository is already updated. I can hide LazAutoUpdate if you like.
Title: Re: Online Package Manager
Post by: balazsszekely on November 07, 2016, 11:37:18 pm
The repository is up and running again(40 packages). Before testing, please download and install lazopkman from the following link: https://github.com/getmem/LazOpkMan
What's new:
  - compile packages before install(available in Lazarus trunk r53263+), in version 1.6 the compile process is skipped
  - no more annoying explorer windows
  - force download, force extract implemented
  - remember last download directory, remember package source and package destination directory
  - a lot of bugix
  - update packages from external link(test with bgrabitmap9.2.1 - it has a valid link). I will fix the others soon. In my opinion this was a bad idea, since very few maintainers provide snapshots of development versions.

To do:
 - update packages from SVN
 - documentation
 - voting system

Please test. Thank you!
Title: Re: Online Package Manager
Post by: Josh on November 08, 2016, 01:21:59 am
Download New version from above link
Went to install package and get error
opkman_installer.pas(166,40) Error: identifier idents no member "DoCompilePackage"

in line
function TPackageInstaller.CompilePackage(const AIDEPackage: TIDEPackage;
  APackageFile: TPackageFile): Integer;
begin
  Result := -1;
  {$if declared(lcl_version)}
   {$if (lcl_major >= 1) and (lcl_minor >= 7)}
     //DoCompilePackage function is only available with Laz 1.7 +
     DoOnPackageInstallProgress(imCompilePackage, APackageFile);
     Result := PackageEditingInterface.DoCompilePackage(AIDEPackage, [pcfCleanCompile, pcfDoNotSaveEditorFiles], False);  <--------- HERE
   {$endif}
  {$endif}
end;             


I am using Laz 1.7 SVN 51308, FPC 3.1.1.
Previous version .9  Worked ok (only 8 packages thoug)
Title: Re: Online Package Manager
Post by: halim on November 08, 2016, 01:35:37 am
i get same error
i am using Newpascal ver 1.034 Laz Ver.1.7 and FPC 3.1.1
Title: Re: Online Package Manager
Post by: balazsszekely on November 08, 2016, 06:28:15 am
@Josh, @halim
I edited my post. DoCompilePackage function is only available in Lazarus trunk r53263+. I cannot distinguish with ifdef between different SVN versions, only major/minor/release versions. So you need Lazarus trunk r53263 or change the following line from:
Quote
{$if (lcl_major >= 1) and (lcl_minor >= 7)}
to
Quote
{$if (lcl_major >= 1) and (lcl_minor >= 8)}
The package manager will work fine(no compiling feature though). Of course none of this will be a problem after the next release.
Title: Re: Online Package Manager
Post by: minesadorada on November 08, 2016, 08:35:13 am
Excellent job @getmem!  Works like a charm.
Laz 1.7/fpc 3.1.1 Windows v10 x86_64
Title: Re: Online Package Manager
Post by: minesadorada on November 08, 2016, 07:56:24 pm
Quote
@minesadorada
Can you hold fire on LazAutoUpdate for a bit?
The repository is already updated. I can hide LazAutoUpdate if you like.
Ok LazAutoUpdate is working now (thanks Sourceforge for changing your API!)
There is another issue.

LazAutoUpdate is an updating system.  The component takes care of most of the updating, but there is a console app that is a companion, and a GUI for developers to manage the update/versioning process.  The question is: How much should OPM do?
Ideally it would download the component; the companion non-GUI (source) and the GUI developer maintainer (source).  Is this possible?  With all 3 elements, making an updateable Lazarus app hosted on SourceForge is pretty easy (which was the reason I wrote it) so I think it has value to developers.

I really don't know the answer, and would ask your advice.
Title: Re: Online Package Manager
Post by: balazsszekely on November 08, 2016, 11:12:18 pm
Quote
@minesadorada
The question is: How much should OPM do? Ideally it would download the component; the companion non-GUI (source) and the GUI developer maintainer (source).
Ideally only download the component, but I guess source is always ok. The user should decide the appropriate action.
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 07:51:31 am
@minesadorada
Your package is visible again. Please test it. You should download the source first: https://github.com/getmem/LazOpkMan
Title: Re: Online Package Manager
Post by: minesadorada on November 09, 2016, 09:18:56 am
@minesadorada
Your package is visible again. Please test it. You should download the source first: https://github.com/getmem/LazOpkMan
At svn the version is 0.1.28.0  O.P.M. has 0.1.27.0 as the downloadable.  Can you update please?
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 09:29:56 am
Quote
At svn the version is 0.1.28.0  O.P.M. has 0.1.27.0 as the downloadable.  Can you update please?
Consider it done. However I don't know exactly when the next update will be. As I told you previously I'm not hosting the repository.
Title: Re: Online Package Manager
Post by: minesadorada on November 09, 2016, 09:43:16 am
Quote
At svn the version is 0.1.28.0  O.P.M. has 0.1.27.0 as the downloadable.  Can you update please?
Consider it done. However I don't know exactly when the next update will be. As I told you previously I'm not hosting the repository.
I notice OPM has 'Update Link'. The update link for lazautoupdate is https://sourceforge.net/projects/lazautoupdate/files/lazautoupdatesource/ - I keep that synchronised with svn.  In future, I'll include the version in the package file name.
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 10:07:20 am
Quote
I notice OPM has 'Update Link'. The update link for lazautoupdate is https://sourceforge.net/projects/lazautoupdate/files/lazautoupdatesource/ - I keep that synchronised with svn.  In future, I'll include the version in the package file name.
Thanks! This would be helpful.
Please note:
The update link should point to a zip file. The zip structure should be the same as the one in the repository. I mean you can add new files to your project but the path to the lpk file, the main directory name should stay the same, otherwise OPM will fail to load the package.


 
Title: Re: Online Package Manager
Post by: minesadorada on November 09, 2016, 10:42:31 am
Quote
I notice OPM has 'Update Link'. The update link for lazautoupdate is https://sourceforge.net/projects/lazautoupdate/files/lazautoupdatesource/ (https://sourceforge.net/projects/lazautoupdate/files/lazautoupdatesource/) - I keep that synchronised with svn.  In future, I'll include the version in the package file name.
Thanks! This would be helpful.
Please note:
The update link should point to a zip file. The zip structure should be the same as the one in the repository. I mean you can add new files to your project but the path to the lpk file, the main directory name should stay the same, otherwise OPM will fail to load the package.


 
Full link to zipfile with correct path (\lazautoupdate) : https://sourceforge.net/projects/lazautoupdate/files/lazautoupdatesource/lazautoupdate.zip (https://sourceforge.net/projects/lazautoupdate/files/lazautoupdatesource/lazautoupdate.zip)
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 11:08:06 am
To test the link I updated the JSON file in my local computer. Works great. The package is successfully updated:
https://youtu.be/Mi3bhavwxMI
Please do this to all your five packages.

In a week or so the SVN update will be also available(hopefully).
Title: Re: Online Package Manager
Post by: minesadorada on November 09, 2016, 11:44:45 am
@getmem:

https://sourceforge.net/projects/lazautoupdate/files/otherpackages/longtimer.zip
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/poweredby.zip
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/scrolltext.zip
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/playsoundpackage.zip
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 12:14:00 pm
@minesadorada
Done!
Title: Re: Online Package Manager
Post by: minesadorada on November 09, 2016, 12:22:53 pm
@minesadorada
Done!
Thanks.
Where's the update link for OnlinePackageManager? :)
Title: Re: Online Package Manager
Post by: wp on November 09, 2016, 02:02:57 pm
As I can see the package list contains also CSVDocument. I don't know if this is a good idea: CSVDocument is included in the fpc installation since version 3.0. At least there should be a comment that the ccr version should be used only for older fpc versions.

Another wish: Many packages don't contain a description of what the package is good for, but for those which do the description usually runs across several lines. In the package list this desciption, however, is squeezed into a single line. Wouldn't it be better to provide a separate memo for the package description, or to increase the row height of this line to show all lines as a wordwrapped text? The minimum would be a popup hint showing the entire text. The same probably for the license.
Title: Re: Online Package Manager
Post by: minesadorada on November 09, 2016, 03:00:08 pm
...
Another wish: Many packages don't contain a description of what the package is good for, but for those which do the description usually runs across several lines. In the package list this desciption, however, is squeezed into a single line. Wouldn't it be better to provide a separate memo for the package description, or to increase the row height of this line to show all lines as a wordwrapped text? The minimum would be a popup hint showing the entire text. The same probably for the license.
Each package should ideally have a Wiki page (or one constructed for it) as it's 'Home Page'.  In that way, OPM can keep it compact, and the wiki page is easily updated by the package author with more information and/or links.
It's the Lazarus way to separate functionality for ease of maintainance :)

I agree the license type should be displayed in the OPM tree display.  That's important.

@getmem is doing a magnificent job so far - let's not discourage him with loads of 'suggestions/improvements'  8)

[hypocrite mode]
It would be nice if OPM showed which IDE tab the component was being installed to. (though sometimes 'hunt the newly-installed component' can be a diversion from an otherwise boring day)
[/hypocrite mode]

 
Title: Re: Online Package Manager
Post by: lainz on November 09, 2016, 03:11:55 pm
Installed spktoolbar with this tool and it's working well in Trunk. Good job.
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 04:29:13 pm
Quote
As I can see the package list contains also CSVDocument. I don't know if this is a good idea: CSVDocument is included in the fpc installation since version 3.0. At least there should be a comment that the ccr version should be used only for older fpc versions.
Thanks! I removed CVSDocument from my local repository. It will take a few days though until the main repository is updated.

Quote
Another wish: Many packages don't contain a description of what the package is good for, but for those which do the description usually runs across several lines. In the package list this desciption, however, is squeezed into a single line. Wouldn't it be better to provide a separate memo for the package description, or to increase the row height of this line to show all lines as a wordwrapped text? The minimum would be a popup hint showing the entire text. The same probably for the license.
I will add a popup hint, because a variable height row(with a lot of info) would look ugly in my opinion. The tree is already displaying to much info.


@minesadorada
Quote
Let's not discourage him with loads of 'suggestions/improvements'
No no! Please let the suggestions/improvements coming. I like that. I will try to implement most of them(at least the reasonable ones).

Quote
It would be nice if OPM showed which IDE tab the component was being installed to. (though sometimes 'hunt the newly-installed component' can be a diversion from an otherwise boring day)
Use the: Lazarus Menu-->View-->Components(Ctrl+Alt+P). It takes just a few seconds to locate the newly installed component.

Quote
@lainz
Installed spktoolbar with this tool and it's working well in Trunk. Good job.
Thanks. You should send me the upload links for the BGRA components. See BgraBitmap9.2.1 and the previous discussion with @minesadorada.
This one
https://github.com/bgrabitmap/bgracontrols/archive/v4.3.2.zip
and this one
https://github.com/bgrabitmap/bgracontrolsfx/archive/v0.1.6.zip
?
Title: Re: Online Package Manager
Post by: lainz on November 09, 2016, 05:03:47 pm
@GetMem
These links are the right ones for these versions. But I'm not mantaining an update link, the bgrabitmap one is also not an update link, when a new release arrives that will not be the same zip file.

Maybe we can create a special release called OnlinePackageManager where you always can grab a zip file we upload when we release the newest version. (If I understand it right). Of course it will have always the same name.

Or you can use the master repository (git) with has the latest sources always (we need to ensure that always compile and is working well). Or we can create a separate branch wich is updated only when we release a new version.

I need to talk with circular.
Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2016, 08:29:53 pm
@wp
I implemented the popup hint: https://github.com/getmem/LazOpkMan

@lainz
Quote
Maybe we can create a special release called OnlinePackageManager where you always can grab a zip file we upload when we release the newest version. (If I understand it right). Of course it will have always the same name.
Yes, you understood correctly. That special release would be great!

Quote
Or you can use the master repository (git) with has the latest sources always (we need to ensure that always compile and is working well). Or we can create a separate branch wich is updated only when we release a new version.
I plan to add this feature. The package manager will be able to checkout/update/pull whatever from a SVN repository. The thing is most of the packages out there don't have a zip with the latest version, only a link to a SVN repository. This feature seems more logical then the "update from external zip".
Title: Re: Online Package Manager
Post by: lainz on November 09, 2016, 10:23:50 pm
@GetMem
We will use the Master branch as release. I talked with circular.

BGRA Bitmap
There will be a new repository for BGRA Bitmap tomorrow so stay tuned.

BGRA Controls
https://github.com/bgrabitmap/bgracontrols/archive/master.zip

BGRA Controls FX
https://github.com/bgrabitmap/bgracontrolsfx/archive/master.zip
Title: Re: Online Package Manager
Post by: balazsszekely on November 10, 2016, 07:01:59 am
@lainz
Great! I will add the links to the JSON file. One more thing, I noticed that the description and author fields are missing from "bgracontrols.lpk" and "bgracontrolsfx.lpk". Is this by accident?
Title: Re: Online Package Manager
Post by: wp on November 10, 2016, 01:48:48 pm
There's a new release version of CalLite (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/) and a wiki page (http://wiki.lazarus.freepascal.org/CalLite).
Title: Re: Online Package Manager
Post by: lainz on November 10, 2016, 03:39:55 pm
@lainz
Great! I will add the links to the JSON file. One more thing, I noticed that the description and author fields are missing from "bgracontrols.lpk" and "bgracontrolsfx.lpk". Is this by accident?

I will update them today.

This is the new link for bgrabitmap
https://github.com/bgrabitmap/bgrabitmap/

This is the update link
https://github.com/bgrabitmap/bgrabitmap/archive/master.zip
Title: Re: Online Package Manager
Post by: balazsszekely on November 11, 2016, 07:07:01 am
Quote
@wp
There's a new release version of CalLite (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/) and a wiki page (http://wiki.lazarus.freepascal.org/CalLite).
I updated the package. Thanks.
Title: Re: Online Package Manager
Post by: Josh on November 14, 2016, 09:44:06 pm
Hi
Just put a clean Laz Trunk on Clean Installation and thought I would try this to add in some packages; all was going well until I instal synapse 40.1. This failed with the screen shot attached, i checked installed packages and nothing is installed. So then I tried to install another package and this generates the same error. I cleaned sources, and rebuild ide, and installed the other package and all seems ok, so I installed lazsynapse 40. and this seems ok.

Is this a known problem?

Also When Error occurred, I clicked the install updates button again, and it failed again, when I checked installed packages There were 2 instances of each of the installed packages.
Title: Re: Online Package Manager
Post by: balazsszekely on November 14, 2016, 10:46:24 pm
Hi josh,

Quote
Is this a known problem?
Not until now. It was a bug. Please test it again: https://github.com/getmem/LazOpkMan
Thank you!

PS: Both synapse40 and synapse40.1 are runtime packages, after "install" you won't be able to see them in the installed package list. However the packages can be added to the required package list of a project.

PS1: Today(2016.11.15) I had to change the JSON structure again. Please test with: https://drive.google.com/open?id=0B9Me_c5onmWoaldvMndnTFNxTTQ
Title: Re: Online Package Manager
Post by: Josh on November 16, 2016, 03:26:41 pm
Hi Getmem,

As the new release 1.6.2 was released; i thought I would test it out; I now have a 1.6.3 (Fixes) and FPC 3.0.1 (Fixes) installed; when I try to compile I get

opkman_oleutils.pas(110,64) Error: Call by var for arg no. 3 has to match exactly: Got "Int64" expected "QWord"

Which points to here.

Res:=FSrcStream.Seek(Int64(liOffset), Origin, Int64(liResult));

Any ideas?
Title: Re: Online Package Manager
Post by: balazsszekely on November 16, 2016, 05:17:28 pm
@josh
Fixed! Download link: https://drive.google.com/open?id=0B9Me_c5onmWoY2xCZEdONERqa28
Hopefully the main repository will be synchronized again in a few days, then you can use the github version.

Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2016, 08:10:01 am
Hi all,

The main repository has been moved to: http://packages.lazarus-ide.org/ The download speed is quite exceptional. Thanks @Marc! 
From now on, I can update the repository more frequently, multiple times per day if necessary. I already synchronized the repository with latest changes from my local computer. In order to get the latest version:
   1. Download the source from: https://github.com/getmem/LazOpkMan
   2. Compile/Build/Install
   3. Go to package manager option and change the remote repository address to: http://packages.lazarus-ide.org/
In a few days the package manager will be moved to Lazarus trunk, so updating the source will become much easier than it is now.

PS: Feedback, bug report, package update is more then welcome.

Title: Re: Online Package Manager
Post by: lainz on November 18, 2016, 02:03:41 pm
Hi, when I try to rebuild the ide it says "can't find unit opkman_optionsfrm.pas".

This line in the file causes the problem:

Code: Pascal  [Select][+][-]
  1.  *   Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also      *

Seems that it thinks that's an html file? Is a bug in the compiler.

Edit: I can't reproduce it. It happened only one or two times, then I edited the file to remove that line, then It compiled. Then I reverted the line and deleted the lib folder and then recompiled and now compiles  %)
Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2016, 03:06:32 pm
@lainz
I did try to reproduce myself without success.

Good news! Thanks to @varianus the package manager has proxy support. Please test.
Title: Re: Online Package Manager
Post by: lainz on November 18, 2016, 03:29:05 pm
@lainz
I did try to reproduce myself without success.

Good news! Thanks to @varianus the package manager has proxy support. Please test.

Well that's these runtime errors that it's supossed to be reported to the bugtracker, but if we can't reproduce there's nothing to report, I've not taken a screenshot not written the number down to a text file, so nothing can be done. It was strange, why the compiler will try to find the file in the comments  :o

I don't have proxy but seems that it will put some people happy.
Title: Re: Online Package Manager
Post by: minesadorada on November 18, 2016, 09:21:14 pm
Downloaded latest version and changed the repository URL.  Glad to report its working great - and very fast, too.
Environment: NewPascal Laz1.7/fpc 3.1.1 Win 10 64bit
I'll test it tomorrow in Laz 1.6/fp c3.0 32-bit Ubuntu 14.x =update= Complete Success!

Minor annoyance: I installed the DCrypt package, which in itself is pretty cryptic, so I clicked on the help link on OPM, and it points to an obsolete Delphi page which doesn't help at all.  I would suggest changing the link to http://wiki.lazarus.freepascal.org/DCPcrypt (http://wiki.lazarus.freepascal.org/DCPcrypt)

Thanks for this useful add-on.
Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2016, 11:23:01 pm
Quote
Minor annoyance: I installed the DCrypt package, which in itself is pretty cryptic, so I clicked on the help link on OPM, and it points to an obsolete Delphi page which doesn't help at all.  I would suggest changing the link to http://wiki.lazarus.freepascal.org/DCPcrypt
Although the obsolete delphi page is the original one, I agree http://wiki.lazarus.freepascal.org/DCPcrypt is more helpful for Lazarus user. Link changed. Thanks!
Title: Re: Online Package Manager
Post by: Groffy on November 21, 2016, 09:31:04 am
Hello,

just saw, that in Lazarus trunk the onlinepackagemanager moved into the \components folder. This version allows to use a proxy server. Great! After installing and open the manager form, there is a message about an invalid JSON ini file. How to avoid that?



Title: Re: Online Package Manager
Post by: balazsszekely on November 21, 2016, 09:35:45 am
Quote
Just saw, that in Lazarus trunk the onlinepackagemanager moved into the \components folder. This version allows to use a proxy server. Great! After installing and open the manager form, there is a message about an invalid JSON ini file. How to avoid that?
This could only happen if you connect to the old repository with outdated JSON. Open options, then change Remote repository to: http://packages.lazarus-ide.org/
Title: Re: Online Package Manager
Post by: Groffy on November 21, 2016, 09:39:49 am
Hello GetMem

Quote
This could only happen if you connect to the old repository with outdated JSON. Open options, then change Remote repository to: http://packages.lazarus-ide.org/

Thank you for your quick response, I forgot about that. Again thank you for your great work!

Title: Re: Online Package Manager
Post by: balazsszekely on November 21, 2016, 09:44:06 am
Quote
@Groffy
Thank you for your quick response, I forgot about that. Again thank you for your great work!
You're more then welcome! Feel free to post any bugs you find or suggestions/feature requests.
Title: Re: Online Package Manager
Post by: Groffy on November 21, 2016, 01:03:34 pm
Feel free to post any bugs you find or suggestions/feature requests.

Well, its fun to follow the progress, you put a lot of work in it to make it work withing 6weeks (first posting on October 05.). Just a few things/ideas :

1) Filter functionality seems not fully functional. I just tested to filter by category. With any of the defined categories, the result is an empty listbox. (would be nice to store the last assigned filter)
Furthermore there is a filtering by Author, but it seems that the repositiory items do not contain the authors name (at least not visible)

2) Makes it sense to manage more than one repository address?

3) Makes it sense to enable an automatic message when for one of the installed packages an update is available?



My best regards
Title: Re: Online Package Manager
Post by: balazsszekely on November 21, 2016, 01:37:08 pm
@Groffy
Quote
Filter functionality seems not fully functional. I just tested to filter by category. With any of the defined categories, the result is an empty listbox.
This is a bug,  fixed in r53396.  Please test.

Quote
would be nice to store the last assigned filter
This can be easily implemented, but then the list gets filtered by default. It may lead to confusion. What do you think?

Quote
Furthermore there is a filtering by Author, but it seems that the repositiory items do not contain the authors name (at least not visible)
Each repository package can contain multiple lpk files. The Author field is located in the lpk node(see attachment).

Quote
Makes it sense to manage more than one repository address?
Yes. This is in the todo list.

Quote
Makes it sense to enable an automatic message when for one of the installed packages an update is available?
I can implement this feature for the main repository, however checking updates from external webpage(see update feature) can be dangerous(malware, license issues, etc...). I don't want to automate the process.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 21, 2016, 02:19:21 pm
I could not install SpkToolbar package because character case in a unit name did not match its file name. They must match exactly when a file name is not all lowercase.

I fixed it in r5371 in Lazarus-CCR.

Index: components/spktoolbar/SpkToolbar/SpkToolbar.pas
===================================================================
--- components/spktoolbar/SpkToolbar/SpkToolbar.pas     (revision 5370)
+++ components/spktoolbar/SpkToolbar/SpkToolbar.pas     (working copy)
@@ -1,4 +1,4 @@
-unit spktoolbar;
+unit SpkToolbar;

It has changed at some point. I remember installing SpkToolbar on Linux a long time ago.

Otherwise the package manager looks good!

For future changes in Options format and default values, a "Version" attribute can be added.
Other config files of the IDE have it.

About the filtering: saving and using the previous filter is not a good idea. Filter could be selected from a history list maybe.
I think the whole filter GUI must be revamped. Now it is clumsy and counter-intuitive.
There should be a separate window where many filter conditions can be set and they are 'AND'ed together.

I also think many packages now included in Lazarus components/ directory should be moved to CCR and provided through the online package manager.
Title: Re: Online Package Manager
Post by: lainz on November 21, 2016, 02:50:59 pm
The problem with the CCR is that doesn't support the 'update' option, to get the latest sources.

Why you (Lazarus mantainers?) don't create a GitHub organization and create a separate repository for each package, so all benefit from it: getting the latest with the Online Package Manager is a download of the master.zip

Edit: I mean only for those in active development, else it has no sense at all.
Title: Re: Online Package Manager
Post by: Groffy on November 21, 2016, 04:13:25 pm
@GetMem

This can be easily implemented, but then the list gets filtered by default. It may lead to confusion. What do you think?

Right, I was just thinking about filtering into categories, which would be my prefered filter. I agree thats not really helpful for other filter settings. Could lead to confusions.

I like JuhaManninnen's idea (later posting) about saving filter settings into a history

Quote
Each repository package can contain multiple lpk files. The Author field is located in the lpk node(see attachment).

Right, did not see/understand it on the first view.

Quote
I can implement this feature for the main repository, however checking updates from external webpage(see update feature) can be dangerous(malware, license issues, etc...). I don't want to automate the process.

Hm, good point. However I was just thinking of an automatic information, not to start an update process for a package.


Best regards
Title: Re: Online Package Manager
Post by: minesadorada on November 21, 2016, 04:34:36 pm
The problem with the CCR is that doesn't support the 'update' option, to get the latest sources.

Why you (Lazarus mantainers?) don't create a GitHub organization and create a separate repository for each package, so all benefit from it: getting the latest with the Online Package Manager is a download of the master.zip

Edit: I mean only for those in active development, else it has no sense at all.
All my packages are updateable and downloadable via ccr SVN (https://svn.code.sf.net/p/lazarus-ccr/svn (https://svn.code.sf.net/p/lazarus-ccr/svn)) and also zips maintained at SourceForge that OPM currently uses.  I also try to keep the associated Wiki pages up to date.  I like Sourceforge and SVN.

I regularly svn-update to my local disk. - the ccr repository is currently at Revision 5371 with lots of new stuff.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 21, 2016, 04:39:42 pm
The problem with the CCR is that doesn't support the 'update' option, to get the latest sources.
'svn' command can be used to update latest sources of individual packages there.

Quote
Why you (Lazarus mantainers?) don't create a GitHub organization and create a separate repository for each package, so all benefit from it: getting the latest with the Online Package Manager is a download of the master.zip
I have a gap in my knowledge. Who makes a master.zip file?

I understood earlier that GetMem planned for a direct revision control access in the package manager. I am not sure if I undertstood right.
It would allow loading latest development versions of selected packages by a svn, git or hg etc. command. Such command takes longer than loading a ready zipped package of course.

Maintained packages that have releases, the latest release version must be added to the JSON config file manually now.
I am not sure how GetMem planned to automate the process. There must be a way for the package maintainer to pass the version info without changing download URL (and file name).
This is quite important in future. The online package manager maintainer should have as little admin work as possible. Otherwise we will have an obsolete and outdated package repository in future, years from now.
[Edit] ... or maybe it is not too much maintenance to copy a new package and update the config. Don't know.
In any case it requires action from 2 people: the maintainer of a package and the maintainer of the online package manager.
Title: Re: Online Package Manager
Post by: wp on November 21, 2016, 05:15:36 pm
The problem with the CCR is that doesn't support the 'update' option, to get the latest sources.
I do it all the time. In Windows, using TortoiseSVN: Right-click on local ccr repository, "SVN Update" - that's it.
Title: Re: Online Package Manager
Post by: lainz on November 21, 2016, 05:26:07 pm
The problem with the CCR is that doesn't support the 'update' option, to get the latest sources.
I do it all the time. In Windows, using TortoiseSVN: Right-click on local ccr repository, "SVN Update" - that's it.

I know wp, I know, I was talking about the update option of this Online package manager that expects a zip file to get the latest sources with it. Else I don't will use it, for example I installed the spktoolbar, then you added some new themes, if I want them with the online package manager I can't, I must use svn (that of course I have and know to update with it) but that's not the point of using the package manager?
Title: Re: Online Package Manager
Post by: minesadorada on November 21, 2016, 06:17:00 pm
The problem with the CCR is that doesn't support the 'update' option, to get the latest sources.
I do it all the time. In Windows, using TortoiseSVN: Right-click on local ccr repository, "SVN Update" - that's it.

I know wp, I know, I was talking about the update option of this Online package manager that expects a zip file to get the latest sources with it. Else I don't will use it, for example I installed the spktoolbar, then you added some new themes, if I want them with the online package manager I can't, I must use svn (that of course I have and know to update with it) but that's not the point of using the package manager?
Ideally OPM will eventually use SVN preferentially for downloads and updates.  There is a case to be made for only providing packages with an active svn (or git) repository,  however I like the fallback option of using a hosted zip for developers that don't use svn or git - but only for selected packages i.e. ones where the developer is actively maintaining it.

For easier auto-maintainance, there need to be instructions for developers to make their components 'OPM-friendly'.  Some kind of standard versions.txt file that OPM can check (on user request) as well as including/updating the json file when committing/uploading newer versions.  The instructions should be in the wiki (with a link from OPM)

my 2€
Title: Re: Online Package Manager
Post by: lainz on November 21, 2016, 06:30:46 pm
Quote
'svn' command can be used to update latest sources of individual packages there.

Good point.

Quote
I have a gap in my knowledge. Who makes a master.zip file?

Is automatically done, like this:
https://github.com/bgrabitmap/bgrabitmap/archive/master.zip

So if you have any GitHub repository the zip is already available. It contains the latest sources.

Quote
Maintained packages that have releases, the latest release version must be added to the JSON config file manually now.
I am not sure how GetMem planned to automate the process. There must be a way for the package maintainer to pass the version info without changing download URL (and file name).
This is quite important in future. The online package manager maintainer should have as little admin work as possible. Otherwise we will have an obsolete and outdated package repository in future, years from now.
[Edit] ... or maybe it is not too much maintenance to copy a new package and update the config. Don't know.
In any case it requires action from 2 people: the maintainer of a package and the maintainer of the online package manager.

That's the main problem of having a single JSON made by hand. If for example we have a website to upload the packages, then a database will do the trick, you do a query and get the list of packages in a generated JSON, that no one needs to mantain.

Quote
For easier auto-maintainance, there need to be instructions for developers to make their components 'OPM-friendly'.  Some kind of standard versions.txt file that OPM can check (on user request) as well as including/updating the json file when committing/uploading newer versions.  The instructions should be in the wiki (with a link from OPM)

That's true. a versions.txt pointing:
- The latest download source of release in zip (an URL)
- The latest version number
- All the other neccessary stuff

So the package manager database will be updated automatically, say one time per month? Of course there's no one testing the quaility of the packages with this way. Is always a responsability of the user what to trust.

So in fact you need only a list of URL's to get the data from (list of versions.txt only), process them and update the database, it will take time to process all, but not too much, since these are a few kb files.

So the submit new app will be something like:

Name of your package: Something
URL of updates: version.txt url containing all the data for the json (generated with the online package manager of course)
Title: Re: Online Package Manager
Post by: JuhaManninen on November 21, 2016, 07:07:37 pm
Ideally OPM will eventually use SVN preferentially for downloads and updates.  There is a case to be made for only providing packages with an active svn (or git) repository,  however I like the fallback option of using a hosted zip for developers that don't use svn or git - but only for selected packages i.e. ones where the developer is actively maintaining it.
Oops, now the idea went upside down.
The main purpose of the package manager must be to provide stable versions of packages provided by their authors/maintainers.
The same way that any production quality SW is delivered.

In a perfect world all packages have an active maintainer but in real world they don't.
A fallback option must be to provide direct access to a development SVN / Git / etc. server of  the unmaintained packages. Another option is that the maintainer of our new online package manager picks and tests good revisions and "releases" them. He essentially then partly maintains those packages which is not realistic in long term.

People who participate in testing or developing a certain package will continue to use its revision control access directly.
It is not the main scope of our new package manager.

So if you have any GitHub repository the zip is already available. It contains the latest sources.
Ok, the same thing as getting directly using git command.

Quote
That's true. a versions.txt pointing:
- The latest download source of release in zip (an URL)
- The latest version number
- All the other neccessary stuff

So the package manager database will be updated automatically, say one time per month? Of course there's no one testing the quaility of the packages with this way. Is always a responsability of the user what to trust.
Updating automatically once per month sounds clumsy. Why not weekly or daily then?
Actually this works best with external URLs. The maintenance and hosting is moved to a package maintainer then.
I think the process of acknowledging new versions and copying to package repo should be made smoother but maybe not fully automatic.
Title: Re: Online Package Manager
Post by: minesadorada on November 21, 2016, 07:15:30 pm
@GetMem - I have a new package for you.  It's a runtime-only non-installable one (maybe a good test for OPM?)
OPM package with JSON:
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini_opm.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini_opm.zip)

I hope I configured it OK.
Updates in: https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)
Wiki Page http://wiki.lazarus.freepascal.org/CryptINI (http://wiki.lazarus.freepascal.org/CryptINI)
Testing app/demo:
Source: https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptinitest_source.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptinitest_source.zip)
Ready-compiled (Win32/64 + Linux 32/64): https://sourceforge.net/projects/lazautoupdate/files/otherpackages/testcryptini_compiled.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/testcryptini_compiled.zip)

Note: When using  the OPM 'Create Repository Package' I noticed that it still puts unnecessary stuff in the zipfile.  I manually removed them.

 
Title: Re: Online Package Manager
Post by: lainz on November 21, 2016, 07:35:15 pm
Quote
Ok, the same thing as getting directly using git command.

Yes, of course it requires no git, but is the same.

Quote
Updating automatically once per month sounds clumsy. Why not weekly or daily then?
Actually this works best with external URLs. The maintenance and hosting is moved to the package maintainer then.
I think the process of acknowledging new versions and copying to package repo should be made smoother but maybe not fully automatic.

Yes the update can be done daily.

Of course we have control about our packages with no need of a unique mantainer, a bit of work for everyone doesn't harm. Then also saves the repository bandwidth, that's used only for the database.

Well is ok, maybe:
- Check if the source is reliable, then accept or decline the submission. Then we need a mantainer, but only for the first time the package is accepted or declined. That will prevent spam, but for the rest can be made automatically.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 21, 2016, 08:35:46 pm
Yes, of course it requires no git, but is the same.
Ok, I forgot that somehow. Subversion / Git must be installed before they can be used.
It is a requirement that should not be forced to everybody.
The package manager can check if "svn" executable is available and provide package links accordingly.

Yes, it means the master.zip file is useful, development versions from GitHub can be downloaded without Git installed.
Title: Re: Online Package Manager
Post by: lainz on November 21, 2016, 08:38:16 pm
If you want I can create the organization and all the repositories, then also I can add every mantainer by mail or by username.

It will be called the same, Lazarus CCR but in github, and instead of only a repository, separate repos for each package.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 21, 2016, 10:01:04 pm
If you want I can create the organization and all the repositories, then also I can add every mantainer by mail or by username.

It will be called the same, Lazarus CCR but in github, and instead of only a repository, separate repos for each package.
Moving the whole CCR to GitHub is not something I can decide or want to decide.
There are many people involved in the current CCR's maintenance. Discussion in mailing list would reach more of those people.

Another question is if the master.zip file is enough reason to move things there.
People who want development versions can easily install svn. The main purpose of the package manager would remain the released packages.

A GitHub organization can be created in any case. How much and how quickly things should move there from CCR, must be discussed with others.
Title: Re: Online Package Manager
Post by: lainz on November 21, 2016, 10:05:54 pm
Ok, I've created the organization. Unfortunately, the lazarus organization is already created by someone. So I created lazarusccr one.

Please send me your github username or mail to add you as administrator, then you can add all the other people.
Title: Re: Online Package Manager
Post by: balazsszekely on November 21, 2016, 10:07:59 pm
Nice discussion!  :D
I will try to address all the issues raised.

@Juha @minesadorada
Thanks for the packages. I will add them soon to the repository.

@lainz, @wp, @minesadorada
Both github and sourceforge are perfectly capable to store the zipfiles needed for the update feature as @lainz proved for github and @minesadorada for sourceforge. The only problem with the ccr(sourceforge) is that one cannot download an individual package, only the whole repository, it's not practical. Of course this is nobodies fault and this is why I decided to add SVN/Git support to package manager(it's not yet implemented).

@lainz
Your idea with external JSON is good, but in order to get there we needed a stable version first. Without a central repository and a working package manager we would only have an abstract, theoretical discussion. Luckily @Juha supported the whole project from the beginning.
If I understood you correctly I need to add another JSON file which will point to external JSONs, created by the package maintainers. The external JSON contains all the details about the package, along with a zipfile. If this true, it's already done in 95%.

PS: I would like to see the the ccr moved to github, in my opinion is more flexible the source forge.

Title: Re: Online Package Manager
Post by: minesadorada on November 22, 2016, 01:17:25 pm
A suggestion:
Sometimes, package writers make a demo/example app (source) to go with a package.  Could the .json file include a link field pointing to the location of one, if it exists?

I find it very helpful when first installing a package, both to test compatibility and to look at the source and gain some tips on using the package.  Most of the built-in packages have example code, and it's very helpful.
Title: Re: Online Package Manager
Post by: balazsszekely on November 22, 2016, 01:30:00 pm
@minesadorada
Quote
Sometimes, package writers make a demo/example app (source) to go with a package.  Could the .json file include a link field pointing to the location of one, if it exists?
I find it very helpful when first installing a package, both to test compatibility and to look at the source and gain some tips on using the package.  Most of the built-in packages have example code, and it's very helpful
Usually the demo applications are located in the root directory of the package, namely in: demo/example or sample folder. Currently almost every repository package has a demo subfolder. Would you like to add a link to an external demo zip file? 
Title: Re: Online Package Manager
Post by: minesadorada on November 22, 2016, 01:41:23 pm
@minesadorada
Quote
Sometimes, package writers make a demo/example app (source) to go with a package.  Could the .json file include a link field pointing to the location of one, if it exists?
I find it very helpful when first installing a package, both to test compatibility and to look at the source and gain some tips on using the package.  Most of the built-in packages have example code, and it's very helpful
Usually the demo applications are located in the root directory of the package, namely in: demo/example or sample folder. Currently almost every repository package has a demo subfolder. Would you like to add a link to an external demo zip file? 
Ahh, I see.  I assumed OPM only zipped the package files in order to save space.  So, such a link is unnecessary.
Title: Re: Online Package Manager
Post by: lainz on November 22, 2016, 01:47:22 pm
Hi GetMem, here is a copy of the lazarus ccr in GitHub, you already are a member
https://github.com/lazarusccr

Actually I'm mantaining it commiting regularly the changes from the original ccr.

Juha Manninen is administrator and if is possible or if they want, can add the original authors that can keep updating his repositories. I already created everything, 60 repos.

I'm adding the URL (wiki article) and description for each one, that's the only thing missing. Also maybe I need to create or update the wiki articles to point the mirror.
Title: Re: Online Package Manager
Post by: balazsszekely on November 22, 2016, 01:50:08 pm
@minesadorada
Feel free to add as many demo application you like(source only). I will add the demo projects to your repository packages. Just let me know which ones are changed.
Title: Re: Online Package Manager
Post by: balazsszekely on November 22, 2016, 02:09:23 pm
@lainz
Great! I will pause the development and update the JSON to point to the new ccr(where needed).

Quote
Actually I'm mantaining it commiting regularly the changes from the original ccr.
Manually or do you use some automated tool?

Quote
I'm adding the URL (wiki article) and description for each one, that's the only thing missing. Also maybe I need to create or update the wiki articles to point the mirror.
Ok. Perhaps we should also make some experiment with the external JSON. Can you add a JSON file along with the zip? The content of the JSON is irrelevant for now.

Thank you for your contribution. This helps a lot.
Title: Re: Online Package Manager
Post by: lainz on November 22, 2016, 02:20:09 pm
Quote
Manually or do you use some automated tool?

By hand. For that I need to contact the original authors / mantainers to get moved (if they want) to GitHub.

Quote
Ok. Perhaps we should also make some experiment with the external JSON. Can you add a JSON file along with the zip? The content of the JSON is irrelevant for now.

You can do it yourself so you can get more control over it. Pick a package of your choice, you have currently permissions to commit in every package.
Title: Re: Online Package Manager
Post by: wp on November 22, 2016, 02:41:47 pm
I am totally against movement of ccr to github without agreement of all component contributors (at least of those who actively work on their components). We will totally get lost in a mixture of thousands of derived versions, and we will be overwhelmend with issues of users selecting outdated versions from the wrong repository. With some developers transferring their work from ccr to some private github repositories without deleting the ccr folders we have a mess already now.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 02:46:57 pm
Hi GetMem, here is a copy of the lazarus ccr in GitHub, you already are a member
https://github.com/lazarusccr

Actually I'm mantaining it commiting regularly the changes from the original ccr.

Juha Manninen is administrator and if is possible or if they want, can add the original authors that can keep updating his repositories. I already created everything, 60 repos.
As I wrote to lainz in a PM, that is a bad idea, a kind of a brain-fart.
It would only add useless maintenence work for lainz himself and confusion for everybody else, without any benefit.
He should have discussed the issue before forking the whole CCR!

The new lazarusccr in GitHub is good for projects with a maintainer, if the maintainer wants to do his development in GitHub.
The biggest problem is that most packages and apps in CCR have no active maintainers. Forking them to GitHub does not improve the maintenance in any way.
CCR in SourceForge works pretty well for project that are maintained.

Quote from: GetMem
Great! I will pause the development and update the JSON to point to the new ccr(where needed).
Don't change anything yet!
Title: Re: Online Package Manager
Post by: lainz on November 22, 2016, 02:50:38 pm
I get it.

Please sorry. For the actively developed and those will not move I will delete the repositories.

Again please tell me those what don't want to be moved and I will delete them.
Title: Re: Online Package Manager
Post by: minesadorada on November 22, 2016, 02:56:57 pm
The lazarusccr GIT repository currently isn't a faithful copy of https://svn.code.sf.net/p/lazarus-ccr/svn (https://svn.code.sf.net/p/lazarus-ccr/svn) - it seems to be missing /components

I'm not familiar with GIT so I'm finding it hard to make a simple repository that syncs with my local files.  TortoiseSVN is a snap to use.

Why all the enthusiasm for GIT?  I understand the 'download Zip' feature, but with OPM any user can download a single package or many, whilst developers can easily set up SVN on their dev machines to commit updates to their component code (and already do)

Lazarusccr SVN has been very free and open up to now, but with OPM perhaps some rules for developers would be in order.  For instance, maintaining a ´stable' branch that OPM can rely on.

I agree that duplication is not generally a good idea - it normally leads to versioning issues.

If the svn ccr could be automatically cloned (daily perhaps) than perhaps users who prefer GIT would benefit.

my 2€
Title: Re: Online Package Manager
Post by: balazsszekely on November 22, 2016, 03:00:02 pm
I thought this is just a clone like this one: https://github.com/fpc-svn/lazarus-ccr
Apparently it's possible to make an automated tool that syncs with the original repository. The development still remains at sourforge. What's wrong with that? All we have to do is separate each package on the github repository.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 03:16:34 pm
Again please tell me those what don't want to be moved and I will delete them.
You should delete them all except if a maintainer explicitly tells you otherwise.
Remember, most projects in CCR have no maintainers. How could they tell you anything?

Any project in CCR that is currently not maintained, should be moved to GibHub only by a person who takes over its maintenance. Then the original project directory in CCR should be deleted.

I quote some pieces of your PM because this is of common interest:
Quote
Again, I will keep it up to date if no one moves to GitHub. At least it works as a mirror for the Online Package Manager.
No, we don't need a mirror for the Online Package Manager. We just got a nice and fast server for its packages.
I don't know why the whole idea was misunderstood so badly.

For worries about people preferring Git over SVN, I can say it is a non-issue. Both have easy commands. A SVN repo can be accessed using git tools (git-svn link) which also I use for my Lazarus development.
So, that is a very bad excuse to make useless forks.
Title: Re: Online Package Manager
Post by: lainz on November 22, 2016, 03:24:09 pm
I got it. I deleted it.

Please sorry if I wasted your time (and other users) with this.

Keep the discussion in the package manager from now, and I will do it the same.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 03:26:43 pm
I thought this is just a clone like this one: https://github.com/fpc-svn/lazarus-ccr
Apparently it's possible to make an automated tool that syncs with the original repository. The development still remains at sourforge. What's wrong with that? All we have to do is separate each package on the github repository.
Ok, a fully automatic mirror makes sense. Actually there are now multiple such mirrors for FPC and Lazarus projects.
That was not the purpose of our new lazarusccr in GitHub. Its idea was to be a master repo for some projects.
Then some projects would continue in SourceForge but be merged manually to GitHub. No good.

@lainz, if you can create an automatic SourceForge CCR mirror update, that would be great. However it must be separated from the projects hosted in GitHub.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 03:35:07 pm
I got it. I deleted it.
Please sorry if I wasted your time (and other users) with this.
Keep the discussion in the package manager from now, and I will do it the same.
Sorry I expressed my opinion so strongly. You deleted the whole lazarusccr organization. Actually it was a good idea for new hosted projects. Only forking everything from another repo was a problem.

Projects can still be moved to GitHub if their current (or new) maintainer so decides.
Also the automatic mirror makes sense.
Title: Re: Online Package Manager
Post by: lainz on November 22, 2016, 03:36:50 pm
Quote
@lainz, if you can create an automatic SourceForge CCR mirror update, that would be great. However it must be separated from the projects hosted in GitHub.

Hi, that's a great idea! But I don't have the knowledge to do this. Maybe Graeme? can help you because he has a lazarus repository in his account that is updated with commits and everything.

Quote
Sorry I expressed my opinion so strongly. You deleted the whole lazarusccr organization. Actually it was a good idea for new hosted projects. Only forking everything from another repo was a problem.

Don't worry I can create it again. I will add you again as administrator. Please accept the invitation soon.
Title: Re: Online Package Manager
Post by: lainz on November 22, 2016, 06:25:25 pm
I found a script, seems that's for linux?

https://github.com/dpocock/sync2git
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 06:42:31 pm
I found a script, seems that's for linux?
https://github.com/dpocock/sync2git
Typically servers are Linux or Unix systems.
Anyway you need admin rights to a computer which is on all the time. Then add a cron job there.
Title: Re: Online Package Manager
Post by: minesadorada on November 22, 2016, 06:52:34 pm
I prefer to look at the future rather than the past.  There's been a lot of discussion about historical components and code which is no longer maintained.

The ccr has been somewhat anarchic up to now, but OPM offers the Lazarus community an opportunity to 'get it right'.  I suggest we embrace GetMem's initiative to make a long-term solution that benefits users.  @lainz and @JuhaMannien are valuable partners.  I think @wp could make valuable contributions too.

The issues seem to be versioning and maintenance.

Both need standards that don't rely on a maintainer person to continually oversee them.

The team have some good brains and analysis skills - I'm sure they can together come up with something great.

The eventual solution needs to be attractive to future contributors and users alike.

Wouldn't it be fantastic if OPM was included in the Lazarus 1.8 distribution?

Once OPM is sorted, I would love an equivalent online repository for code snippets.  The wiki and this forum have loads of useful code which gets swallowed up by time and obscurity.  I suspect like lots of users, I keep a local cache of snippets which are really useful.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 07:25:37 pm
The ccr has been somewhat anarchic up to now, but OPM offers the Lazarus community an opportunity to 'get it right'.
No, actually the CCR repository and the new OPM have different purposes.

CCR is a code hosting place for developers and active testers, just like other revision control servers are. Changes in source code happen there.

OPM is for end users to easily find, download and install packages. It is similar to CPAN which partly made Perl so popular years ago. (I believe you remember that time.)
An end user can trust that he gets a well tested bug-free production quality package. That's the idea anyway ...
OPM is not tied to CCR anyhow. Code for the packages can be hosted anywhere. CCR is just one of those places.

Quote
I suggest we embrace GetMem's initiative to make a long-term solution that benefits users.  @lainz and @JuhaMannien are valuable partners.
GetMem's initiative is already embraced. The package manager is in Lazarus trunk SVN sources and a server for package files is established.

Quote
The issues seem to be versioning and maintenance.
Both need standards that don't rely on a maintainer person to continually oversee them.
Well, it depends very much on a person who fixes bugs, improves code and makes stable releases when the time is right.
How exactly will "standards" help with that?

Quote
The eventual solution needs to be attractive to future contributors and users alike.
What solution do you propose?

Title: Re: Online Package Manager
Post by: minesadorada on November 22, 2016, 07:43:22 pm
No, actually the CCR repository and the new OPM have different purposes.

CCR is a code hosting place for developers and active testers, just like other revision control servers are. Changes in source code happen there.

OPM is for end users to easily find, download and install packages. It is similar to CPAN which partly made Perl so popular years ago. (I believe you remember that time.)
An end user can trust that he gets a well tested bug-free production quality package. That's the idea anyway ...
OPM is not tied to CCR anyhow. Code for the packages can be hosted anywhere. CCR is just one of those places.
OPM (if its included in Laz 1.8 ) will lend respectability to the ccr and other packages.  Is that a good or wanted thing?  Do Lazarus core developers want to field queries about packages they have no control over?  If not, who will take responsibility over new additions?

Quote
GetMem's initiative is already embraced. The package manager is in Lazarus trunk SVN sources and a server for package files is established.
Embraced by the Lazarus release team? OPM is kind-of pointless if it's 'just another 3rd-party package'. Will it be in the Lazarus 1.8 distribution? (spoiler: I think it should be)

Quote
Well, it depends very much on a person who fixes bugs, improves code and makes stable releases when the time is right.
How exactly will "standards" help with that?
No need for the scare-quotes.  Standards are necessarily arbitrary and help collaboration.  How is that scary?  Standards enable testing and validation - and if they are well-designed they can be automated.  Standards are a way to invalidate badly-designed packages that are unsupportable.

Quote
What solution do you propose?
I don't pretend to have the brains nor expertise that you guys have.  However I'll continue to make suggestions as long as that doesn't irritate you all too much :)
Writing a package specifically for OPM (Cryptini) taught me a lot about the issues from the developer's POV.  As it stands, it's somewhat cumbersome - but I have faith that OPM can be slick, robust, futureproof and simple for all, given the talents of the team.
 
Title: Re: Online Package Manager
Post by: JuhaManninen on November 22, 2016, 10:33:54 pm
OPM (if its included in Laz 1.8 ) will lend respectability to the ccr and other packages.  Is that a good or wanted thing?  Do Lazarus core developers want to field queries about packages they have no control over?  If not, who will take responsibility over new additions?
Lazarus core developers have no part in (most of) the packages in CCR. They are 3rd party packages.
The idea is to deliver 3rd party packages in an easy way.
The OPM maintainer, currently GetMem, is responsible for adding new packages. The criteria for adding should be relaxed. A maintainer's duty is not to judge the quality or usefulness of packages.
Later there will be a server side SW allowing user voting and comments. Judgement will come through user feedback.

Quote
Embraced by the Lazarus release team? OPM is kind-of pointless if it's 'just another 3rd-party package'. Will it be in the Lazarus 1.8 distribution? (spoiler: I think it should be)
Yes it will be in the next distribution. It is not a 3rd-party package, it is now in Lazarus trunk. Everything in Lazarus trunk will be in the next major release. The package manager author, GetMem, is now officially a Lazarus developer, meaning that he has commit access and communicates in the developers mailing list.

Quote
No need for the scare-quotes.  Standards are necessarily arbitrary and help collaboration.  How is that scary?  Standards enable testing and validation - and if they are well-designed they can be automated.  Standards are a way to invalidate badly-designed packages that are unsupportable.
I had no intention to insult you. I only wanted to show what is realistic and what is not.
Open source development works a little differently than commercial development.
A standard may say: "package xxx maintainer must fix bugs and make releases until he is told otherwise". In a company it works! A payed employee really does what he is told to do.
In open source, if a package's author/maintainer flees, as happened to many CCR packages, no standards requirement helps with that.

Quote
I don't pretend to have the brains nor expertise that you guys have.  However I'll continue to make suggestions as long as that doesn't irritate you all too much :)
Writing a package specifically for OPM (Cryptini) taught me a lot about the issues from the developer's POV.  As it stands, it's somewhat cumbersome - but I have faith that OPM can be slick, robust, futureproof and simple for all, given the talents of the team.
No irritation here. Suggestions are welcome. Even better, patches for the package manager in Lazarus sources are welcome throught Mantis bug tracker!
In open source a suggestion with a patch always works better.
Title: Re: Online Package Manager
Post by: wp on November 23, 2016, 12:08:26 am
This is a long thread, and I did not read everything - so excuse me if this issue already has been reported...

Now that Luiz has disabled the ccr version of VirtualTreeView which I did not want to bypass by adding comment braces around the very efficient installation stopper lines I decided to go the future way and get myself the "official" VirtualTreeView 4.8 using the OPM. I uninstalled the old VTV version (which was in a folder shared between a variety of Lazarus installations), then installed the current OPM from Lazarus trunk, checked virtualtreeview-4.8.7-R4 in the OPM and clicked Install. Fine. But the recompilation of the IDE stopped because of "The unit registervirtualtreeview exists twice in the unit path of the IDE." - the message lists the paths of the old and new installations. Using "Package" / "Package Links" I removed the old path from the list of known packages - still the same error.

What to do? Where do I have access to the "unit path of the IDE" so that I could delete the old directory?

Another point - maybe this already has been suggested, excuse me in this case: When clicking "Install" in the OPM there is no way to control the destination folder. With the VTV issue I know that the installation goes into the profile folder. This is fine in most cases, but I could imagine there are users (like myself) who want to put all third-party components into a common folder which is shared between several Lazarus installations. So, I would appreciate if there were a selection box for the destination directory in the OPM Options dialog.

Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 06:55:32 am
@wp

Thanks for testing the package manager.

Quote
Now that Luiz has disabled the ccr version of VirtualTreeView which I did not want to bypass by adding comment braces around the very efficient installation stopper lines I decided to go the future way and get myself the "official" VirtualTreeView 4.8 using the OPM. I uninstalled the old VTV version (which was in a folder shared between a variety of Lazarus installations), then installed the current OPM from Lazarus trunk, checked virtualtreeview-4.8.7-R4 in the OPM and clicked Install. Fine. But the recompilation of the IDE stopped because of "The unit registervirtualtreeview exists twice in the unit path of the IDE." - the message lists the paths of the old and new installations. Using "Package" / "Package Links" I removed the old path from the list of known packages - still the same error.
Unfortunately I don't have an answer to your question. I repeatedly reinstalled VST over an existing installation, without errors. The compile/install/rebuild process is done by the IDE through the "PackageIntf" interface, OPM only "asks" the IDE to compile the packages and rebuild itself when needed, if the IDE says there is a duplicate path, probably is somewhere. This is the kind of error message I was afraid of when I decided to add VST internally to the package manager.

Quote
What to do? Where do I have access to the "unit path of the IDE" so that I could delete the old directory?
Deleting or renaming the old VST directory should solve the problem.

Quote
Another point - maybe this already has been suggested, excuse me in this case: When clicking "Install" in the OPM there is no way to control the destination folder. With the VTV issue I know that the installation goes into the profile folder. This is fine in most cases, but I could imagine there are users (like myself) who want to put all third-party components into a common folder which is shared between several Lazarus installations. So, I would appreciate if there were a selection box for the destination directory in the OPM Options dialog.
Consider it done. I will try to implement it today.

Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 09:14:11 am
A Suggestion:
In the Create Package dialog, a button 'Submit Package?' - meaning 'Submit Package for consideration for the public Online Repository' (wouldn't fit on a button!)

This would perhaps trigger a stock dialog, where the submitter is asked various questions (incl. contact info), and the info then gets zapped to the OPM maintainer (currently GetMem)
Title: Re: Online Package Manager
Post by: wp on November 23, 2016, 09:29:20 am
As for the VirtualTreeView installation, it is working now. The problem was that I still had installed other components which depend on VTV. After uninstalling them the IDE compiles again, and I finally could install the OPM version of VTV.
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 11:10:14 am
Quote
@minesadorada
In the Create Package dialog, a button 'Submit Package?' - meaning 'Submit Package for consideration for the public Online Repository' (wouldn't fit on a button!)
This would perhaps trigger a stock dialog, where the submitter is asked various questions (incl. contact info), and the info then gets zapped to the OPM maintainer (currently GetMem)
It's already in the to do list for a long time, but there is a problem. Where to submit the packages/JSON/contact Info?
1. To http://packages.lazarus-ide.org/
   We need a folder with public access, the risk of spam is high
2. Send by mail to me or somebody else
   In order to send a mail directly from OPM, the user must install the OpenSSL library.
3. Upload to a FTP server
  This is my favorite solution. But upload where? We need a public FTP somewhere.

I'm open to suggestions.

Quote
@wp
As for the VirtualTreeView installation, it is working now. The problem was that I still had installed other components which depend on VTV. After uninstalling them the IDE compiles again, and I finally could install the OPM version of VTV.
Ok. I'm glad it's working.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 23, 2016, 12:11:58 pm
3. Upload to a FTP server
  This is my favorite solution. But upload where? We need a public FTP somewhere.
You could ask Marc and Vincent if they can start an FTP server in the same machine where http://packages.lazarus-ide.org/ is.
The disk space could be limited to prevent huge files uploaded either by accident or intentionally.
Title: Re: Online Package Manager
Post by: wp on November 23, 2016, 01:19:28 pm
@GetMem: I just uploaded a new zipped release version of CalLite (version 0.3). In addition, I also added a file callite-current-release.zip which is identical to the 0.3 version file. In future releases the most recent file will always be duplicated under this name. Therefore, if you link the OPM to callite-current-release.zip (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-current-release.zip/download), it will always catch the most recent file (except for the short interruption it takes me to replace the old file by the new one - btw: how does OPM behave if a zip file is not available?).

I am planning to keep this naming scheme with all the repositories that I am maintaining.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 23, 2016, 01:40:36 pm
@GetMem: I just uploaded a new zipped release version of CalLite (version 0.3). In addition, I also added a file callite-current-release.zip which is identical to the 0.3 version file. In future releases the most recent file will always be duplicated under this name. Therefore, if you link the OPM to callite-current-release.zip (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-current-release.zip/download), it will always catch the most recent file
Sorry but it does not solve anything. Information about the new version is not passed to the package manager.
When you update to version 0.4, keeping the same callite-current-release.zip file name, the package manager's JSON file still shows version 0.3. It would have to download and extract the zip file to get its real version, but that is too much traffic.

Earlier I (and others, too) suggested an external JSON file for the version etc. info.
It should be supported to move admin work from GetMem to maintainers of individual packages.
Title: Re: Online Package Manager
Post by: wp on November 23, 2016, 02:16:10 pm
Thanks. I guess I should read all 276 posts...

So, I'll remove the callite-current-release.zip again, and wait for instructions how to setup the JSON file. The zip file for OPM is callite-0.3.zip then (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.zip/download).
Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 02:30:11 pm
@GetMem: I just uploaded a new zipped release version of CalLite (version 0.3). In addition, I also added a file callite-current-release.zip which is identical to the 0.3 version file. In future releases the most recent file will always be duplicated under this name. Therefore, if you link the OPM to callite-current-release.zip (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-current-release.zip/download (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-current-release.zip/download)), it will always catch the most recent file
Sorry but it does not solve anything. Information about the new version is not passed to the package manager.
When you update to version 0.4, keeping the same callite-current-release.zip file name, the package manager's JSON file still shows version 0.3. It would have to download and extract the zip file to get its real version, but that is too much traffic.

Earlier I (and others, too) suggested an external JSON file for the version etc. info.
It should be supported to move admin work from GetMem to maintainers of individual packages.

When I made the external cryptini.zip 'update file' I put 'cryptini.json' in the same server location. (it's also in the zip of course)
I assumed that was the way to do maintenance updates.  I'm obviously ahead of myself! :)

Hey - wouldn't it be nice if the json file could have a 'What's new in this version' entry?
 
Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 02:49:18 pm
Hi, I'm also waiting for GetMem response to upload the Json file.

Where I must download the package manager from now, it is still beign updated on github or I must switch for the lazarus components one? I want to create the json with the latest of course.

If I remember well I also don't response a question of GetMem, where I can upload the json file on GitHub, well this can be done in two places:
- Along with the sources, then you can get it thanks to the raw.githubusercontent website with no need of git, so is served like a text file.
- In a release, but this must be a special release that I must update every time I change the json. So delete the previous and upload it again.

I think I will use the first.

I don't know how you GetMem will test it, if you need a new release of some of the packages I mantain I can do one, since I have some changes in the repositories that can apply for a new release, at least for a minor one.
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 02:58:54 pm
Quote
@wp
So, I would appreciate if there were a selection box for the destination directory in the OPM Options dialog.
Implemented in r.53424

@Juha
Quote
You could ask Marc and Vincent if they can start an FTP server in the same machine where http://packages.lazarus-ide.org/ is.
The disk space could be limited to prevent huge files uploaded either by accident or intentionally.
Ok. I will send a mail to Marc.

@Juha
Quote
Earlier I (and others, too) suggested an external JSON file for the version etc. info.
It should be supported to move admin work from GetMem to maintainers of individual packages.
Yes, but the external json idea is not fully implemented + I always thought that the packages from the main repository will be manually added/updated for security reasons. The main repository will contain the most 25 popular packages(or whatever number you find appropriate). If not the whole central repository is pointless. Without a central repository all we need is a master json(make it a txt), that contains the links to the developer's JSON.

Again I'm open for suggestions.
Quote
@minesadorada
When I made the external cryptini.zip 'update file' I put 'cryptini.json' in the same server location. (it's also in the zip of course)
That JSON is concatenated to the main one from the central repository. It was designed for me, it's not the "external json" that @Juha and @lainz talks about.
Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 03:05:04 pm
Quote
Yes, but the external json idea is not fully implemented...

Ok that's the response I was looking. So from now uploading it is not neccessary.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 23, 2016, 03:22:10 pm
Where I must download the package manager from now, it is still beign updated on github or I must switch for the lazarus components one? I want to create the json with the latest of course.
The master is in Lazarus sources now. It is best the download from there (together with the whole Lazarus trunk maybe).
I have updated the wiki page, too.
Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 04:06:35 pm
Where I must download the package manager from now, it is still beign updated on github or I must switch for the lazarus components one? I want to create the json with the latest of course.
The master is in Lazarus sources now. It is best the download from there (together with the whole Lazarus trunk maybe).
I have updated the wiki page, too.

I've downloaded it with Fpcupdeluxe with also trunk of fpc, but bgrabitmap doesn't compile, seems that they're working in changes of assembler and that code is not working in the package.

So I need to download FPC 3.0 + lazarus trunk. It will work? I need bgrabitmap for my projects and packages so is the only thing I can do.
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 04:18:55 pm
Quote
@lainz
I've downloaded it with Fpcupdeluxe with also trunk of fpc, but bgrabitmap doesn't compile, seems that they're working in changes of assembler and that code is not working in the package.So I need to download FPC 3.0 + lazarus trunk. It will work? I need bgrabitmap for my projects and packages so is the only thing I can do.
While testing the package manager, I installed bgrabitmap/bgracontrols/bgracontrolsfx several times today. It works fine. I also have FPC 3.0.0 + Lazarus trunk. So the answer is yes.
Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 05:05:15 pm
So, if an FTP server is set up, and there is a public area for new package uploads (which would be subject to approval) - why not a password-protected 'updates' area for developers who already have approved packages?

To update a package, just ftp the zip and json file to the protected 'updates' area.  No need for external zips with such a simple system.

In the meantime, OPM (Or a separate cron maintenance app) regularly and automatically checks the protected area (just the jsons, so not too heavy) and if it finds a newer version number for an existing package, it transfers the zip to the OPM server and deletes it from the FTP 'updates' area.

This would make maintenance of existing packages a breeze for both devs and the OPM manager.  A weakness is that it would rely on devs not producing a 'bad' update which would propagate to the main server, but it is probably OK because otherwise it means the maintainer has to approve all updates as well as new stuff, which seems unnecessary work.

The only manual maintenance of OPM would be vetting new packages.  Once approved, the dev gets r/w access to the protected 'updates' ftp directory and ongoing maintainence is then up to the dev.

A viable system?

Whatever system is adopted, I have a point update to CryptINI (v0.0.9) ready to test whatever is decided.

On a different note, is Lazarus svn trunk no longer synchronised? I get revision 41451 from the svn server (with no OPM)
Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 06:37:17 pm
You downloaded from sourceforge that is not updated anymore :)

Download from here
http://svn.freepascal.org/svn/lazarus/trunk
Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 06:41:02 pm
You downloaded from sourceforge that is not updated anymore :)

Download from here
http://svn.freepascal.org/svn/lazarus/trunk
Thanks.
Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 06:57:54 pm
An older post in this thread:

Quote
Download New version from above link
Went to install package and get error
opkman_installer.pas(166,40) Error: identifier idents no member "DoCompilePackage"

in line
Code: Pascal  [Select][+][-]
  1. function TPackageInstaller.CompilePackage(const AIDEPackage: TIDEPackage;
  2.   APackageFile: TPackageFile): Integer;
  3. begin
  4.   Result := -1;
  5.   {$if declared(lcl_version)}
  6.    {$if (lcl_major >= 1) and (lcl_minor >= 7)}
  7.      //DoCompilePackage function is only available with Laz 1.7 +
  8.      DoOnPackageInstallProgress(imCompilePackage, APackageFile);
  9.      Result := PackageEditingInterface.DoCompilePackage(AIDEPackage, [pcfCleanCompile, pcfDoNotSaveEditorFiles], False);  <--------- HERE
  10.    {$endif}
  11.   {$endif}
  12. end;            

This error is still there.  (Downloaded from trunk)

I have found that with the combination fpc 3.1.1 + Laz 1.7
Code: Pascal  [Select][+][-]
  1. {$if something >= somethingelse}
doesn't work. I don't know if it's a bug or intentional.

It only seems to accept
Code: Pascal  [Select][+][-]
  1. {$if something > somethingelse}
or
Code: Pascal  [Select][+][-]
  1. {$if something < somethingelse}

The fix is:
Code: Pascal  [Select][+][-]
  1. {$if (lcl_major > 0) and (lcl_minor > 6)}

Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 07:10:51 pm
I'm all over this thread today!

Yet another suggestion:

In the new OPM Options/Folders page, How about the defaults in the Tedit:
Local Repository: {$I LazarusDir}\components
Archive Directory: GetTempDir
Update Directory GetTempDir

Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 07:22:29 pm
@minesadorada
About the fpc 3.1.1 bug: It's weird that ">=" is not supported. I applied your suggestion in r.53428 since logically it's the same as the old one. Thanks!

About the folder page: There is a default value for each folder, just press the "Restore Defaults" button, or delete the config file. You need to do this once, since I recently changed the config file structure.

About the update feature: The "external json" seems more easier to implement. I believe I found a solution, we can keep the central repository and update the packages from external json. I need 1-2 days to implement the feature.
Title: Re: Online Package Manager
Post by: wp on November 23, 2016, 07:41:11 pm
I do understand the Local Repository folder, but what are the Archive and Update directories for?
Title: Re: Online Package Manager
Post by: minesadorada on November 23, 2016, 07:53:59 pm
@minesadorada
About the fpc 3.1.1 bug: It's weird that ">=" is not supported. I applied your suggestion in r.53428 since logically it's the same as the old one. Thanks!

About the folder page: There is a default value for each folder, just press the "Restore Defaults" button, or delete the config file. You need to do this once, since I recently changed the config file structure.

About the update feature: The "external json" seems more easier to implement. I believe I found a solution, we can keep the central repository and update the packages from external json. I need 1-2 days to implement the feature.
Keep with it @Getmem!  I am relying on the team's brains and expertise :)

Please review all of this thread regularly for all suggestions and failures.
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 07:58:23 pm
Quote
@wp
I do understand the Local Repository folder, but what are the Archive and Update directories for?
The packages in the main repository are stored as a zip file(to minimize server load), the OPM first downloads the zip to the "Archive" directory, then unzip it to the "Local Repository" , from here the packages are installed into the IDE. The same is true for zip files downloaded from the package maintainer site, but instead of the "Archive" it's downloaded to the "Update" folder.
I choose this multiple folder solution to keep the "Local repository" clean.
Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 08:00:39 pm
Quote
About the update feature: The "external json" seems more easier to implement. I believe I found a solution, we can keep the central repository and update the packages from external json. I need 1-2 days to implement the feature.

Amazing. Thanks GetMem, is nice to hear that the ideas of the community are heard and implemented for the advance of this service.
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 11:12:55 pm
I did some initial testing...In order to get/display the latest version from the maintainer site, the OPM must connect to each server separately and read the external JSON. The average connection time(depends on the server) is 1.5-2 sec. The data read is almost instantaneous, since the file is small. However multiply 1.5-2 with 50 packages and you got the idea. Not a practical solution. Conclusions:
   1. I'm glad we did not drop the main repository, otherwise OPM speed would be painfully slow
   2. I'm forced to use a worker thread to read the external data from time to time(in the background), plus remembering the latest info somewhere for a quick display on startup

PS: To be honest I like the current solution better. The package maintainer keeps the latest version in a zip file(with a predefined name), on request the zip is downloaded/extracted and after a confirmation dialog, where the version is displayed, the package gets installed. The traffic is between the user and the external server.
This worked well until now as @minesadorada and @lainz proved with their packages. @wp came up with the same idea today.

Or even better along with the zip, the maintainer can save the actual version of the package in the first line of a text file(4.7.9.0 for example). When the users press the update button, the OPM reads then displays the version. After a confirmation dialog, the zip is downloaded or the update is canceled. What is wrong with this solution? We don't have to go through each server just to get a version info. The users are only interested in a few preferred package. I add once the package to the main repository, the maintainers update the txt file. Easy for everyone.

Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 11:25:56 pm
Quote
Or even better along with the zip, the maintainer can save the actual version of the package in the first line of a text file(4.7.9.0 for example). When the users press the update button, the OPM reads then displays the version. After a confirmation dialog, the zip is downloaded or the update is canceled. What is wrong with this solution? We don't have to go through each server just to get a version info. The users are only interested in a few preferred package. I add once the package to the main repository, the maintainers update the txt file. Easy for everyone.

Seems the best, so we must (at least in my case) only update a text file. The url to the text file will be in the generated json?
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2016, 11:37:02 pm
Quote
Seems the best, so we must (at least in my case) only update a text file.
Exactly. This will be true for everyone, not just you.

Quote
The url to the text file will be in the generated json?
Yes it's already generated for the zip. The txt should be the same name, in your case "master".
https://github.com/bgrabitmap/bgrabitmap/archive/master.zip
https://github.com/bgrabitmap/bgrabitmap/archive/master.txt

Or perhaps I only need the a link to the text file, with two lines: line1 ---> version; line2---> link to zip. This way the zip and the txt can be in two different directories or servers for that matter.
Title: Re: Online Package Manager
Post by: lainz on November 23, 2016, 11:41:42 pm
Ok when you have it working tell us to upload it. Maybe you can add that to the wiki too.
Title: Re: Online Package Manager
Post by: minesadorada on November 24, 2016, 10:25:22 am
@GetMem: to help you test..
I have CryptINI V0.0.9 update on my external server (.zip + json)
How can OPM show that it is available?  Currently it shows 0.0.8 as 'Available'
Title: Re: Online Package Manager
Post by: balazsszekely on November 24, 2016, 10:33:27 am
@minesadorada
For now the OPM only shows the version available in the main repository. Currently we try to figure it out, what would be the best approach for updates located at the developers site(see my previous post #295).
Title: Re: Online Package Manager
Post by: Josh on November 24, 2016, 11:02:47 am
Hi Getmem,

Just curious how the updater will look and how hard it will be navigate when 100's of packages get added?

Would a collapseable tree structure be needed; where the primary list is category; this may also make navigation easier and also possibly adding in a submitters package description as the displayed name.
ie
Graphics Libraries
   BGRABitmap ( Cross platform graphics and Image Manipulations Routines, Including GL)
Visual Controls
  BGRAControls (Requires BGRABitmap, Blah Blah Blah)
   Eye Candy (Track Bars, Buttons etc)
   ueControls (Requires BGRABITMAP, LED, visual knobs blah blah blah)

Networking Libraries
  Synapse (cross platform routines for email ftp etc.....)

Title: Re: Online Package Manager
Post by: minesadorada on November 24, 2016, 11:41:35 am
@minesadorada
For now the OPM only shows the version available in the main repository. Currently we try to figure it out, what would be the best approach for updates located at the developers site(see my previous post #295).
Any comments on mu post#285 as a viable system?  It would have picked up my update without you having to do anything.
Title: Re: Online Package Manager
Post by: minesadorada on November 24, 2016, 11:46:39 am
Hi Getmem,

Just curious how the updater will look and how hard it will be navigate when 100's of packages get added?

Would a collapseable tree structure be needed; where the primary list is category; this may also make navigation easier and also possibly adding in a submitters package description as the displayed name.
ie
Graphics Libraries
   BGRABitmap ( Cross platform graphics and Image Manipulations Routines, Including GL)
Visual Controls
  BGRAControls (Requires BGRABitmap, Blah Blah Blah)
   Eye Candy (Track Bars, Buttons etc)
   ueControls (Requires BGRABITMAP, LED, visual knobs blah blah blah)

Networking Libraries
  Synapse (cross platform routines for email ftp etc.....)

With an extra layer:

DesignTime and Runtime
  Graphics Libraries
     BGRABitmap ( Cross platform graphics and Image Manipulations Routines, Including GL)
    Visual Controls
    BGRAControls (Requires BGRABitmap, Blah Blah Blah)
     Eye Candy (Track Bars, Buttons etc)
     ueControls (Requires BGRABITMAP, LED, visual knobs blah blah blah)

  Networking Libraries
     IPControls   
Runtime Only
  Networking Libraries
    Synapse (cross platform routines for email ftp etc.....)
  Graphics
    BGRA runtime
  ...etc.
Title: Re: Online Package Manager
Post by: lainz on November 24, 2016, 11:52:28 am
@minesadorada
For now the OPM only shows the version available in the main repository. Currently we try to figure it out, what would be the best approach for updates located at the developers site(see my previous post #295).

About that, I just remember that a single version number will not work for packages with 2 or more lpk with different versions each one. For example bgrabitmap.
Title: Re: Online Package Manager
Post by: wp on November 24, 2016, 12:00:20 pm
With an extra layer:

DesignTime and Runtime
  Graphics Libraries
     BGRABitmap ( Cross platform graphics and Image Manipulations Routines, Including GL)
    Visual Controls
    BGRAControls (Requires BGRABitmap, Blah Blah Blah)
     Eye Candy (Track Bars, Buttons etc)
     ueControls (Requires BGRABITMAP, LED, visual knobs blah blah blah)

  Networking Libraries
     IPControls   
Runtime Only
  Networking Libraries
    Synapse (cross platform routines for email ftp etc.....)
  Graphics
    BGRA runtime
  ...etc.

No. There are libraries which consist of a standalone runtime-only package (FPSpreadsheet --> laz_fpspreadsheet.lpk) and a visual addon  package (laz_fpspreadsheet_visual.lpk). Your suggestion would force the user to look for FPSpreadsheet under both headers.

Sometimes libraries do not fit into a single category. Therefore it should be possible to have the same package in several categories.
Title: Re: Online Package Manager
Post by: balazsszekely on November 24, 2016, 12:01:59 pm
@josh
The tree is already contains too much info. Adding another node would make things worst. To locate a package you can use the filter.

@minesadorada
Yes I saw your post, it's a good idea with one major flaw: somebody with malicious intent can overwrite the whole repository in ten minutes.

@lainz
True! I believe we can overcome that.

@wp
With a small modification I can achieve that, I mean adding the same package in several categories. Added to the to do list.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 24, 2016, 12:04:41 pm
For now the OPM only shows the version available in the main repository. Currently we try to figure it out, what would be the best approach for updates located at the developers site(see my previous post #295).
It will not work! Let's dump it. We now try to mix many ideas and create a half-baked hybrid which is not good for anyone.
A master package must be either in OPM's own repository or in an external repository.
Now we are planning a system where the master package is maybe in OPM repository but maybe not. It may be elsewhere but OPM does not know it before reading some external files. Uhhh ... no good!

One fact remains: the OPM admin work must be minimized to keep it well maintained also in far future.
My original idea, before other ideas got mixed, was having 3 types of sources for the packages:
They all would be configured in the JSON config file of OPM.
(Number 4. could be a Delphinus style thing but it is not important now.)

Now I start to think we should concentrate in number 1. which is also GetMem's original idea.
Just updating the packages in OPM's repo should be made as easy as possible.
We need the FTP server.
We also need an admin tool which allows copying the packages and updating the configuration with few mouse clicks.
Title: Re: Online Package Manager
Post by: Josh on November 24, 2016, 12:08:49 pm
Adding on
A hint box appears over the component that displays More information or possible the contents of the readme.txt for the component; this would be handy if the new version has additions or a particular bug fix that is required as i do not always keep components up to date if changes to component require major rework of code.

Maybe the addition of an OPM.TXT file would be good use for this; if the file exists in the package the file layout could be.
line 1 : Name and basic description of package ie  BGRABitmap ( Cross platform graphics and Image Manipulations Routines, Including GL)
The subsequent lines then contain the hint text to display.

This way the package owner can update the contents of his components opm.txt  file when needed; with little or no interaction with OPM Maintainer.
 


Title: Re: Online Package Manager
Post by: minesadorada on November 24, 2016, 12:12:16 pm
@minesadorada
Yes I saw your post, it's a good idea with one major flaw: somebody with malicious intent can overwrite the whole repository in ten minutes.
Surely easily solved with ftp permissions, whereby each developer only has write access to their own area?  Only needs to be set up once, then it's self-maintaining.
Title: Re: Online Package Manager
Post by: wp on November 24, 2016, 12:16:33 pm
Quote
@wp
I do understand the Local Repository folder, but what are the Archive and Update directories for?
The packages in the main repository are stored as a zip file(to minimize server load), the OPM first downloads the zip to the "Archive" directory, then unzip it to the "Local Repository" , from here the packages are installed into the IDE. The same is true for zip files downloaded from the package maintainer site, but instead of the "Archive" it's downloaded to the "Update" folder.
I choose this multiple folder solution to keep the "Local repository" clean.

Sorry to overflow you with suggestions. But this one came to my mind when reading your response: What about a checkbox "Delete downloaded zip files after installation/update"? I think the downloaded zip files are not needed any more for anything else, aren't they?
Title: Re: Online Package Manager
Post by: lainz on November 24, 2016, 12:19:14 pm
Quote
OPM repository.
External repository with an external URL.
Development version got directly from a revision control system (SVN, Git, automatic master.zip, whatever).

Well, the first works, so we only need:
- the automatic generation of the main json
- a submission website for developers

The second I don't know.

The third already works for some packages. Only svn/git is missing. Edit: I have for example Fpcupdeluxe that finds and uses svn from my path, else it automatically downloads it to a folder, that code can be used.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 24, 2016, 12:33:07 pm
Well, the first works, so we only need:
- the automatic generation of the main json
- a submission website for developers
Why a website? It would require server side SW and is completely useless for this task.
Anybody can install an FTP client or the OPM client could send the generated package to the server with a button click.

Quote
The second I don't know.
It may not be needed if number one works well.

Quote
The third already works for some packages. Only svn/git is missing.
I think you misunderstood my idea. Now the update may work but it is kind of a hack and a hybrid. A master package is in OPM server but then it is not used, the real package is updated from somewhere else.
My idea is that a package could be defined in OPM configuration to be only a development version copied directly from revision control system.
It is useful for packages which are not maintained actively (yes, there are many).
The OPM GUI must indicate they are development versions.
Note: development versions don't have version numbers thus they are not an issue.
Title: Re: Online Package Manager
Post by: lainz on November 24, 2016, 12:39:44 pm
Quote
...or the OPM client could send the generated package to the server with a button click.

I like this part.

Quote
My idea is that a package could be defined in OPM configuration to be only a development version copied directly from revision control system.

That is possible using svn, the same I see in Fpcupdeluxe, it makes a fpc and lazarus folder and keeps them updated. Also works with GitHub, since GitHub supports getting the sources with svn tools too.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 24, 2016, 12:47:36 pm
That is possible using svn, the same I see in Fpcupdeluxe, it makes a fpc and lazarus folder and keeps them updated.
Yes.

Quote
Also works with GitHub, since GitHub supports getting the sources with svn tools too.
With GitHub we don't need any extra tools because it generates master.zip files automatically. That's why you wanted to move everything to GitHub, remember? :)
Title: Re: Online Package Manager
Post by: lainz on November 24, 2016, 12:51:51 pm
Quote
With GitHub we don't need any extra tools because it generates master.zip files automatically. That's why you wanted to move everything to GitHub, remember? :)

Yes, but if you say that it will get a repository, I think is best instead of getting the master.zip, is less time downloading in each update.

Edit: for those with bad internet connections like me will be a lot of help.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 24, 2016, 01:02:20 pm
Yes, but if you say that it will get a repository, I think is best instead of getting the master.zip, is less time downloading in each update.
Ok yes, true.
Actually SourceForge supports Git and GitHub supports SVN. The differences are exaggerated.
Title: Re: Online Package Manager
Post by: lainz on November 24, 2016, 01:07:42 pm
Nice, so just GetMem need to pick one and will work in both places.
Title: Re: Online Package Manager
Post by: balazsszekely on November 24, 2016, 09:12:26 pm
Quote
@wp
Sorry to overflow you with suggestions. But this one came to my mind when reading your response: What about a checkbox "Delete downloaded zip files after installation/update"? I think the downloaded zip files are not needed any more for anything else, aren't they?
A package lifecycle has five stages: Repository-->Downloaded-->Extracted(Local repository)-->Installed(Up To Date) the fifth one is the Error stage, assigned when one of the steps fails. In the screenshot you can see various packages in different stages.
Let's say a package is downloaded, extracted then the installation fails for some reason(as happened to you with VST). Next time when you press the "Install" button, the OPM will skip the first two steps(download and extract) and will resume the package installation, this way saving time and band with. The archive folder has its purpose, however I would like to make this optional:
Very soon I will add two checkboxes to the option dialog:
   - Force download and extract(if checked will overwrite the above mentioned behaviour, and the package is always re-downloaded/extracted)
   - Delete downloaded zip files after installation/update(only enabled when the previous checkbox is checked). It make sense to delete the old archive/extracted package, because it will be downloaded/extracted again anyways)

PS:  I hope it make sense what I wrote.  :-\
PS1: "Delete downloaded zip files after installation/update" option is always enabled, the user decides the appropriate behaviour
Title: Re: Online Package Manager
Post by: Josh on November 26, 2016, 02:39:35 am
@getmem
Any chance you could add the download link into your signature; it would make locating this package much easier.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 26, 2016, 10:56:32 am
Any chance you could add the download link into your signature; it would make locating this package much easier.
A download link for the online package manager. Is it necessary? It is now part of Lazarus sources and everybody knows how to get them. (?)
To get it separately:
Code: [Select]
$ svn co http://svn.freepascal.org/svn/lazarus/trunk/components/onlinepackagemanager OPM
The old repository should be clearly marked as outdated, for example by adding a source line "This is outdated source" that prevents compilation.
Other option is to delete the GitHub version as it only confuses people. Who would need it?
Title: Re: Online Package Manager
Post by: balazsszekely on November 26, 2016, 11:07:21 am
@josh
The package manager is in Lazarus trunk now.

@Juha
I did synchronized the github version until now, but I will drop the support.

PS: Marked as outdated on github
Title: Re: Online Package Manager
Post by: Xor-el on November 26, 2016, 12:22:36 pm
@josh
The package manager is in Lazarus trunk now.

@Juha
I did synchronized the github version until now, but I will drop the support.

PS: Marked as outdated on github

please don't drop the github support.
not everyone uses Lazarus trunk.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 26, 2016, 12:43:33 pm
please don't drop the github support.
not everyone uses Lazarus trunk.
You don't need to checkout the whole Lazarus trunk as I tried to show earlier.
Having the sources in many places adds extra administrative work and also confusion. It is especially useless here because Lazarus trunk already has many GitHub mirrors.
Uhhh... :(
Title: Re: Online Package Manager
Post by: balazsszekely on November 26, 2016, 02:35:19 pm
@Xor-el
Ok. I will synchronize the github repository, basically it will be a clone of ($LazarusDir)/components/onlinepackagemanager. 
I added to the readme.txt that the main development has moved to: http://svn.freepascal.org/svn/lazarus/trunk/components/onlinepackagemanager
See: https://github.com/getmem/LazOpkMan
Title: Re: Online Package Manager
Post by: Xor-el on November 26, 2016, 03:15:49 pm
@Xor-el
Ok. I will synchronize the github repository, basically it will be a clone of ($LazarusDir)/components/onlinepackagemanager. 
I added to the readme.txt that the main development has moved to: http://svn.freepascal.org/svn/lazarus/trunk/components/onlinepackagemanager
See: https://github.com/getmem/LazOpkMan

thanks  :D
Title: Re: Online Package Manager
Post by: JanRoza on November 28, 2016, 10:57:36 am
Just downloaded the latest trunk version of Online Package Manager but when I try to install the package in Lazarus 1.7 (FPC 3.1.1) I get the following error:

Quote
opkman_installer.pas(166,40) Error: identifier idents no member "DoCompilePackage"

Any ideas how to solve this? Is there a minimum trunk version of Lazarus I need?
Thanks!
Title: Re: Online Package Manager
Post by: balazsszekely on November 28, 2016, 11:03:41 am
Hi JanRoza,

You need Lazarus trunk r53263+ or change the following line(opkman_installer.pas(163) from:
Quote
{$if (lcl_major > 0) and (lcl_minor > 6)}
to
Quote
{$if (lcl_major > 0) and (lcl_minor > 7)}
Title: Re: Online Package Manager
Post by: JuhaManninen on November 28, 2016, 11:34:08 am
Just downloaded the latest trunk version of Online Package Manager but when I try to install the package in Lazarus 1.7 (FPC 3.1.1) I get the following error:

Quote
opkman_installer.pas(166,40) Error: identifier idents no member "DoCompilePackage"

Any ideas how to solve this? Is there a minimum trunk version of Lazarus I need?
When using trunk the minimum version is the latest trunk.
According to your error message you are doing something stupid now. I think you download OPM from the GitHub mirror and try to install it in an old Lazarus trunk. Am I right?
Hey, OPM is already part of Lazarus trunk!
Still synchronizing the old repository is counter-productive. It only creates confusion (as happened now).
I still think the old repo should be either removed or deprecated.
There are already at least 2 mirrors for the code in GItHub. Explicitly synchronizing a 3rd one makes no sense!
I honestly don't understand why Xor-el suggested it and why GetMem agreed.
Title: Re: Online Package Manager
Post by: minesadorada on November 28, 2016, 11:44:24 am
Hi JanRoza,

You need Lazarus trunk r53263+ or change the following line(opkman_installer.pas(163) from:
Quote
{$if (lcl_major > 0) and (lcl_minor > 6)}
to
Quote
{$if (lcl_major > 0) and (lcl_minor > 7)}
So that only becomes TRUE when Lazarus is at V1.8.  How is that testable?
Title: Re: Online Package Manager
Post by: JuhaManninen on November 28, 2016, 11:59:31 am
So that only becomes TRUE when Lazarus is at V1.8.  How is that testable?
See, more confusion...
GetMem, please remove the GitHub mirror or add a line to its sources that prevent compilation.
OPM is now part of Lazarus sources. Period!
It should be easy enough to understand for everybody.
Title: Re: Online Package Manager
Post by: minesadorada on November 28, 2016, 12:30:08 pm
In which case the revised {$IFDEF} is correct, since trunk will presumably be eventually released as V1.8.
Title: Re: Online Package Manager
Post by: JanRoza on November 28, 2016, 12:52:18 pm
@JuhaManninen: No need to immediately call met stupid.  :-[ 
I indeed had an older trunk and looking at the source of the offending opk module it looked as if lazarus 1.7 was sufficient.

Just to stop people calling me stupid  :D  I made a second Lazarus installation with the latest trunk and in this installation everything seems to be working perfectly.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 28, 2016, 01:31:45 pm
@JuhaManninen: No need to immediately call met stupid.  :-[ 
I indeed had an older trunk and looking at the source of the offending opk module it looked as if lazarus 1.7 was sufficient.
Actually I wrote: "you are doing something stupid". Clearly you were misguided by the confusing OPM mirror situation. Even clever people can be misguided by it. :)

Quote
Just to stop people calling me stupid  :D  I made a second Lazarus installation with the latest trunk and in this installation everything seems to be working perfectly.
Why a second Lazarus installation? Why not just "svn up"?
Title: Re: Online Package Manager
Post by: JanRoza on November 28, 2016, 01:41:02 pm
No offence taking, I was just teasing a bit.
I'm always a bit cautious, when I have a working situation I leave that intact and create a new folder with a secondary installation (and configuration).
Once I'm satisfied i delete the old installation.
Maybe not the simplest way but I never loose my working environment this way in case I really do something stupid.  ;)
 
Title: Re: Online Package Manager
Post by: Xor-el on November 28, 2016, 03:02:41 pm
Just downloaded the latest trunk version of Online Package Manager but when I try to install the package in Lazarus 1.7 (FPC 3.1.1) I get the following error:

Quote
opkman_installer.pas(166,40) Error: identifier idents no member "DoCompilePackage"

Any ideas how to solve this? Is there a minimum trunk version of Lazarus I need?
When using trunk the minimum version is the latest trunk.
According to your error message you are doing something stupid now. I think you download OPM from the GitHub mirror and try to install it in an old Lazarus trunk. Am I right?
Hey, OPM is already part of Lazarus trunk!
Still synchronizing the old repository is counter-productive. It only creates confusion (as happened now).
I still think the old repo should be either removed or deprecated.
There are already at least 2 mirrors for the code in GItHub. Explicitly synchronizing a 3rd one makes no sense!
I honestly don't understand why Xor-el suggested it and why GetMem agreed.

I understand your worries, but not everybody wants to download the whole repo just to get a few files.
Title: Re: Online Package Manager
Post by: JuhaManninen on November 28, 2016, 04:19:41 pm
I understand your worries, but not everybody wants to download the whole repo just to get a few files.
This will get you only the OPM sources:
Code: [Select]
$ svn co http://svn.freepascal.org/svn/lazarus/trunk/components/onlinepackagemanager OPM
Actually I already wrote it earlier. Later update it with:
Code: [Select]
$ svn up
just like with any repository.
Title: Re: Online Package Manager
Post by: balazsszekely on November 28, 2016, 10:22:07 pm
1. Ok. No more github
2. I extended the category list. You can assign multiple categories to a package(attachment 1)
3. Description and license can be viewed in a separate form(attachment 2)
Title: Re: Online Package Manager
Post by: wp on November 28, 2016, 10:44:39 pm
Today I uploaded a new release (=zip) version of tvplanit: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.06.zip/download.
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2016, 08:09:16 am
@wp
I updated callite and tvplanit.
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 02:05:53 pm
Updated CryptINI to V0.1.0.  Demo (included) updated to V0.1.2
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)

BTW, when you get to do SVN links in OPM:
svn checkout svn://svn.code.sf.net/p/cryptini/code/ cryptini-code

or: https://sourceforge.net/p/cryptini/code/HEAD/tree/trunk/latest_stable
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2016, 05:19:36 pm
Quote
Updated CryptINI to V0.1.0.  Demo (included) updated to V0.1.2
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip
Done. Please test it.

Quote
BTW, when you get to do SVN links in OPM:
svn checkout svn://svn.code.sf.net/p/cryptini/code/ cryptini-code
or: https://sourceforge.net/p/cryptini/code/HEAD/tree/trunk/latest_stable
I don't know the exact date. I still have to implement:
  - update from external zip(this will be ready soon)
  - update from SVN
  - voting system
Patches are always welcome!
Title: Re: Online Package Manager
Post by: JuhaManninen on November 29, 2016, 07:19:36 pm
  - update from external zip(this will be ready soon)
I think the whole idea is fishy. Which one is the master file, OPM repo or external? Very confusing. Please see my earlier writing about the same thing.
There should be one place for the master file with no ambiguity.

Yes, I also wrote about an external JSON and a package. Then my idea was a totally external package with no copy in the repo.


Quote
  - voting system
Patches are always welcome!
The server side requires more than patches. It must be deployed to a server machine. I think you should ask about it from Marc and Vincent in advance.
Anyway, nice to see you have energy also for that part.
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 07:24:01 pm
Done. Please test it.
Looking good.  Version shows as 0.1.0.  Thanks.
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 07:29:34 pm
I think the whole idea is fishy. Which one is the master file, local or external? Very confusing. Please see my earlier writing about the same thing.
There should be one place for the master file with no ambiguity.
I agree with you about the system 'as is' but let's wait and see what GetMem has in mind for package maintainers.  There are quite a few options available.

SVN could only work if package authors maintain a 'stable branch' for instance.  There needs to be a protocol established for packages offered by OPM both for new authors and maintainers that avoids versioning issues.

Once Laz 1.8 is released, a packaging versioning mistake in OPM could propagate to many many users simultaneously.

Re: External json - why can't an external json be periodically checked then downloaded and  merged with the master copy (along with the package) if its version is better?  This could be (semi)-automatic.
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2016, 08:02:12 pm
@Juha
Fishy in what way? I saw your earlier comment but perhaps we misunderstood each other. As you can see there is already a new "Update" column(screenshot) in the trunk. This column will display the latest version of the package, loaded from an external JSON. To trigger an update, the package maintainer can:
  1. Modify the version number to be bigger then the one in the central repository
  2. Set a boolean flag to true(ForceUpdate for example)
The external json, will contain a link to a zip(also provided by the package maintainer). The zip can be anything as far as I'm concern(the trunk version of the package, the master version, the next release 4.2.1.0-->4.2.1.1, whatever). My job is to add the initial package to the central repository + the link to the external json. After that it's up to the user and package maintainer. Still consider it fishy? If yes please explain why.

PS: The OPM won't update automatically, just displays a message(balloon hint, fleshing line, etc...). The user decides the appropriate action.
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 08:32:40 pm
Looks like a workable system.

It would be nice for package maintainers if there were a simple 'external json editor' app.  IMHO it would make the process of deploying an external update zip + json a lot easier and safer.  It doesn't need to be fancy - just a bunch of TLabel + TEdits and 'create', 'load' and  'save as' buttons.  A fancier version would check the given URLs were valid before saving.

I know the 'create package' has similar functionality for new packages, but it's not really suitable for maintenance updates (as I have found)
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 08:53:07 pm
While we are on the subject of external zips, how about looking at security?

Let's say as a user, I download and update a component from OPM in my Lazarus 1.8, but...
..it turns out that the external update zip wasn't hosted on a secure version control server (GitHub, SourceForge etc) and a malaicious person has replaced the update zip with a malware version (without the maintainer's knowledge)  Components once installed, have a lot of power.  An 'Execute' method (or any method) could do some bad stuff, and quite invisibly too.  Few ordinary component users (like me) check all the source code before using an updated component, particularly if it appears 'built-in' to Lazarus (as OPM's packages will appear)

This is why I suggested a protected area on a known secure server for update zips.  Upload access can be as secure as needed (like commit access to the ccr)  I would favour Sourceforge because I'm used to it, it uses SVN and it does automatic virus checks on all file uploads.  Even better would be an ftp server with multiple folders tied to individual logins to avoid 'cross-contamination' between component commits/uploads (as sourceforge ccr allows)  With only a few dozen components, it doesn't take long to set up (for example) ftp://cryptini.secureserver.com (ftp://cryptini.secureserver.com) to point to the /components/cryptini folder with a unique login to upload - and it's mostly a one-off process.   These would then be the unique 'master' versions @JuhaMannien was talking about.  OPM/GetMem would have access to the whole /components tree (OPM=read-only, GetMem=read + write) via separate logins.  Having the read-only login /URL in OPM sourcecode would not be a security risk.
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2016, 10:04:23 pm
@minesadorada

Quote
It would be nice for package maintainers if there were a simple 'external json editor' app.  IMHO it would make the process of deploying an external update zip + json a lot easier and safer.  It doesn't need to be fancy - just a bunch of TLabel + TEdits and 'create', 'load' and  'save as' buttons.  A fancier version would check the given URLs were valid before saving.
The JSON will be simple, it can be edited manually. Something like this:
Code: XML  [Select][+][-]
  1. {
  2.  "Package" : {
  3.     "Name" : "whatever.zip"
  4.     "ForceUpdate" : False,
  5.     "DownloadURL" : "https:\\....",    
  6.   },
  7.   "PackageFiles" : [
  8.     {
  9.       "Name" : "aaaa.lpk",
  10.       "Version" : "1.2.5.0"
  11.     },
  12.     {
  13.       "Name" : "bbbb.lpk",
  14.       "Version" : "0.0.5.0"
  15.     }
  16.   ]
  17. }
  18.  
I'm not against a GUI, but somebody has to do it.

Quote
I know the 'create package' has similar functionality for new packages, but it's not really suitable for maintenance updates (as I have found)
Well I'm using it and apparently works well since the whole central repository was built with it + one more tool. Still room for improvements, a lot of it. I agree!

Quote
Let's say as a user, I download and update a component from OPM in my Lazarus 1.8, but...
..it turns out that the external update zip wasn't hosted on a secure version control server (GitHub, SourceForge etc) and a malaicious person has replaced the update zip with a malware version (without the maintainer's knowledge)  Components once installed, have a lot of power.  An 'Execute' method (or any method) could do some bad stuff, and quite invisibly too.  Few ordinary component users (like me) check all the source code before using an updated component, particularly if it appears 'built-in' to Lazarus (as OPM's packages will appear)
This is why I wanted to avoid external updates, since it's allowed, there is no such things as security, especially under windows and I can prove it. You can convert an exe to a txt file(it will pass any virus detection),  when needed the malicious package converts it back to byte array then injects it directly to a process memory, without saving the exe file to disk. The last step(memory injection) can be detected by some of the AV's out there, but most of the time will pass. Anyway we don't have to be paranoid...
Title: Re: Online Package Manager
Post by: JuhaManninen on November 29, 2016, 10:22:51 pm
My job is to add the initial package to the central repository + the link to the external json. After that it's up to the user and package maintainer. Still consider it fishy? If yes please explain why.
The fishy part is that you add an initial package to central repo but it will not be used after the package author decides to update for the first time.
Then comes a question: why to add the initial version at all? Why not just provide an URL for the external place? Then it would be a purely external package source, not a half-baked mixture of initial OPM repo package + the real package from external source.
Many ideas were thrown here by many people, including myself, and apparently they got mixed together badly.

My idea still is:
If you want to support external packages, add support for an external URL without an initial OPM repo package. Then the OPM repo would contain only information about a package and its source but not the package itself.

Another option is to make updating the OPM repo packages so easy that loading from an external URL is not needed.
Then the whole update feature could be dumped.

minesadorada writes about security which is also an important issue.
However the idea of FTP user accounts for every package maintainer has technical difficulties. It requires a server admin (Marc, Vincent or anybody) manage those accounts. We want this to be easy for any new package author, a new step of bureaucracy for every new author is not good. I doubt the admins would accept the whole process idea. So, the FTP must be writable without a password or with a common password which is given to anybody who asks.
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2016, 10:37:41 pm
Quote
The fishy part is that you add an initial package to central repo but it will not be used after the package author decides to update for the first time.
Then comes a question: why to add the initial version at all? Why not just provide an URL for the external place? Then it would be a purely external package source, not a half-baked mixture of initial OPM repo package + the real package from external source.
Because at least half of the packages in the main repository don't have a maintainer, there is no external URL. Another reason: all the packages inside the main repository are safe to use, the update feature is optional.
The well known package(synapse) is maintained, but the author rarely visits this forum(if ever) should I approach him to create a JSON? Or if I create the JSON myself, I have to check all the time if the link to the zip has changed. If I start to think about it OPM without a repo is the half-baked solution.

Quote
Another option is to make updating the repo packages so easy that loading from an external URL is not needed.Then the whole update feature could be dumped.
How? You have to provide credentials for that. Without username/password someone with malicious intent will overwrite the whole repo  in five minutes. A login system can be done, but it's not a one man job.

Quote
So, the FTP must be writable without a password or with a common password which is given to anybody who asks.
Exactly, then bad things start to happen immediately.
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 10:40:18 pm
minesadorada writes about security which is also an important issue.
However the idea of FTP user accounts for every package maintainer has technical difficulties. It requires a server admin (Marc, Vincent or anybody) manage those accounts. We want this to be easy for any new package author, a new step of bureaucracy for every new author is not good. I doubt the admins would accept the whole process idea. So, the FTP must be writable without a password or with a common password which is given to anybody who asks.

Well second-best is still better then nothing.  How about a Sourceforge OPM Components repository?  After all, the original source for GetMem was the SourceForge CCR repository.

For example; I just installed Richmemo from OPM, and the update URL is https://havefunsoft.com/share/richmemo.zip (https://havefunsoft.com/share/richmemo.zip).  I have no idea if 'havefunsoft.com' is OK or not.

I think you overcook the difficulty.  It's not as though you're going to get new packages every week - or even every 6 months probably.  I agree it's a pain to set up an FTP server in the way I suggest but once done; server maintenance would be infrequent and trivial IMO, and there would be no admin for existing package maintenance, which is a big bonus.  New package authors could use a public access staging area with a common login (so no delay) - once trusted (vetted, effectively) they would get their ftp area/login for maintenance/updates.

And it does solve most of the security worries - which are important.
Title: Re: Online Package Manager
Post by: minesadorada on November 29, 2016, 10:52:00 pm
@minesadorada

Quote
It would be nice for package maintainers if there were a simple 'external json editor' app.  IMHO it would make the process of deploying an external update zip + json a lot easier and safer.  It doesn't need to be fancy - just a bunch of TLabel + TEdits and 'create', 'load' and  'save as' buttons.  A fancier version would check the given URLs were valid before saving.
The JSON will be simple, it can be edited manually. Something like this:
Code: XML  [Select][+][-]
  1. {
  2.  "Package" : {
  3.     "Name" : "whatever.zip"
  4.     "ForceUpdate" : False,
  5.     "DownloadURL" : "https:\\....",    
  6.   },
  7.   "PackageFiles" : [
  8.     {
  9.       "Name" : "aaaa.lpk",
  10.       "Version" : "1.2.5.0"
  11.     },
  12.     {
  13.       "Name" : "bbbb.lpk",
  14.       "Version" : "0.0.5.0"
  15.     }
  16.   ]
  17. }
  18.  
I'm not against a GUI, but somebody has to do it.
Once you have the format settled I'm willing to give it a go.  Perhaps I'll learn about JSON on the way :)   I guess http://wiki.lazarus.freepascal.org/fcl-json is the page to start with.

BTW, what about scaleability?  Is it practical for OPM to offer 200 packages for example?  If not - what would be a practical maximum?
Title: Re: Online Package Manager
Post by: JuhaManninen on November 29, 2016, 11:20:02 pm
How? You have to provide credentials for that. Without username/password someone with malicious intent will overwrite the whole repo  in five minutes. A login system can be done, but it's not a one man job.
I had the FTP server in mind + a manual check of new packages aided by some admin tools maybe. Yes I know this solution has issues.
It is better I leave this to you people to decide. Maybe the mixture of OPM repo + external package actually works if the repo version is also updated sometimes.
I am not very experienced with server SW configs. You should ask from the server admin about FTP, if it is still needed.

On a positive side: the basic functionality of OPM is solid. The manually added packages are safe and good. It is good to build on that.
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 12:05:39 am
Quote
It would be nice for package maintainers if there were a simple 'external json editor' app.  IMHO it would make the process of deploying an external update zip + json a lot easier and safer.  It doesn't need to be fancy - just a bunch of TLabel + TEdits and 'create', 'load' and  'save as' buttons.  A fancier version would check the given URLs were valid before saving.
The JSON will be simple, it can be edited manually. Something like this:
Code: XML  [Select][+][-]
  1. {
  2.  "Package" : {
  3.     "Name" : "whatever.zip"
  4.     "ForceUpdate" : False,
  5.     "DownloadURL" : "https:\\....",    
  6.   },
  7.   "PackageFiles" : [
  8.     {
  9.       "Name" : "aaaa.lpk",
  10.       "Version" : "1.2.5.0"
  11.     },
  12.     {
  13.       "Name" : "bbbb.lpk",
  14.       "Version" : "0.0.5.0"
  15.     }
  16.   ]
  17. }
  18.  
I'm not against a GUI, but somebody has to do it.

Here you have the JSON editor for the external json, feel free to update it as it needs more or less fields.

This is the generated json:

Code: Pascal  [Select][+][-]
  1. { "Package" : { "DownloadURL" : "google.com", "ForceUpdate" : true, "Name" : "BGRAControls" }, "PackageFiles" : [{ "Name" : "bgra.lpk", "Version" : "1.0.0.0 3" }, { "Name" : "gl.lpk", "Version" : "2.0.0.0 3" }] }
  2.  

It does not output a pretty print version, but it works.
Title: Re: Online Package Manager
Post by: minesadorada on November 30, 2016, 01:20:18 am

It does not output a pretty print version, but it works.
Thanks @lainz - nice neat code!
Useable as is, but I'll mess around with the GUI if that's OK with you.
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 01:43:40 am

It does not output a pretty print version, but it works.
Thanks @lainz - nice neat code!
Useable as is, but I'll mess around with the GUI if that's OK with you.

Thanks. Play with it, but please keep it working for High DPI screens when you change it! (http://wiki.lazarus.freepascal.org/High_DPI)
Title: Re: Online Package Manager
Post by: minesadorada on November 30, 2016, 02:34:53 am
Thanks. Play with it, but please keep it working for High DPI screens when you change it! (http://wiki.lazarus.freepascal.org/High_DPI (http://wiki.lazarus.freepascal.org/High_DPI))
No worries - just tweaking captions and adding data checks to make it more idiot-proof for folk like me :)

@GetMem - Is the DownloadURL  fully formed? i.e. does the DownloadURL field contain the full zipfile name?
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 02:58:57 am
Also change the title to something like OPM External JSON Editor, the name I set is really bad.
Title: Re: Online Package Manager
Post by: minesadorada on November 30, 2016, 03:25:49 am
Also change the title to something like OPM External JSON Editor, the name I set is really bad.
I've just been tidying up the window-dressing, project options and other stuff.  I've attached what I have so far, but I'll have another go tomorrow (it's late here)
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 04:52:39 am
You're from Spain? From your mail address I guess..

Here in south america is late too.

Attached a new version:
- corrected executable file name: now it generates only a single .po file for all platforms
- corrected memory leak
- corrected LazFileUtils position to use their functions instead of FileUtils ones
- translated into spanish
Title: Re: Online Package Manager
Post by: balazsszekely on November 30, 2016, 05:40:29 am
@minesadorada
Quote
BTW, what about scaleability?  Is it practical for OPM to offer 200 packages for example?  If not - what would be a practical maximum?
I tested with 500+ packages(reused the same ones, multiple times). Works well.

Quote
Is the DownloadURL  fully formed? i.e. does the DownloadURL field contain the full zipfile name?
Yes it should contain the full zipfile name.

@lainz
Quote
It does not output a pretty print version, but it works.
Code: Pascal  [Select][+][-]
  1. ...
  2. Streamer.Options := Streamer.Options + [jsoUseFormatString];
  3. ...
The JSON structure will change, but your demo is good and helps a lot. Thanks!
Title: Re: Online Package Manager
Post by: minesadorada on November 30, 2016, 01:18:47 pm
You're from Spain? From your mail address I guess..

Here in south america is late too.

Attached a new version:
- corrected executable file name: now it generates only a single .po file for all platforms
- corrected memory leak
- corrected LazFileUtils position to use their functions instead of FileUtils ones
- translated into spanish
Thanks.  The \locale folder wasn't in the zip - could you attach it so we can keep synchronised please?
- Added optional popup help (that's why I need the .po files)
- Added 'About' dialog
- Added [...] to fetch update zipfile name
- ToDo: Improve validation
- Improving error-checking

I have some time today in sunny Tenerife to fiddle about :)
Title: Re: Online Package Manager
Post by: cryptkeeper on November 30, 2016, 01:23:29 pm
hello folks, very nice job with Online Package Manager, thank you.
I have a small suggestion:  including line or two description what is in the package will be usefull for the user.
now we have to know, what we want to download/install with OPM.
e.g. package name callite. is category information Date/Time but it's visual components or only library of routing for dealing with date/time?
it would be usefull especially with category Other

thank you
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 02:45:33 pm
Code: Pascal  [Select][+][-]
  1. ...
  2. Streamer.Options := Streamer.Options + [jsoUseFormatString];
  3. ...
  4. The JSON structure will change, but your demo is good and helps a lot. Thanks!

Thanks! Yes that's the power of the streamer, is really easy to use.

Sorry I missed the .po files, here it is again with them.
Title: Re: Online Package Manager
Post by: balazsszekely on November 30, 2016, 06:37:06 pm
@cryptkeeper
Just expand the *.lpk node(callight_pkg.lpk in your case) then check the description. It's set by the package maintainer, we cannot modify it.
Title: Re: Online Package Manager
Post by: minesadorada on November 30, 2016, 07:17:34 pm
@lainz
Did a bit more today.  The app is much too fancy for its purpose, but it was an interesting exercise for me.

More/changed resourcestrings, so the .es.po file is now out of whack (I still need to tidy them up so hold off translation for now)

I changed DefaultTranslator to LCLTranslator so the app could deal with languages in a more interactive way. Another reason was the DefaultTranslator chooses 'es' on my system, despite an English-language system.  It's probably fooled by my Spanish keyboard.

- Better interactive error-checking on inputs
- Language menu (only English/Español as yet)
- Hint system that runs on first use
- cfg file to store options
- 'About' dialog that uses app VersionInfo
- ..and other stuff
- I expect it could be refactored, but it seems to work in a user-friendly way and the code is maintainable.

Attached: current version 0.1.3.0

@GetMem I'm not sure anything needs to be added to the JSON - it seems enough for its purpose and it will be quick to download.
I have uploaded a test update JSON for you to test 'live'
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini.json (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini.json)
and https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini_force.json  (force update)
(A good protocol is that update JSONs must always have a filename which is distinct from regular OPM-generated JSONs. You could use a custom name-protocol for update JSONs such as 'update_<packagename>.json' - this avoids filename clashes with package JSON files created by OPM and stored in the same folder)
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 08:33:02 pm
I like the new error messages, these are good to upload the json with no errors.

I need to read the code, but it works as far as I tested.
Title: Re: Online Package Manager
Post by: minesadorada on November 30, 2016, 09:46:07 pm
I like the new error messages, these are good to upload the json with no errors.

I need to read the code, but it works as far as I tested.
here's something I'd like you to look at:
If I am in 'en' mode and execute
Code: Pascal  [Select][+][-]
  1. SetDefaultLang('es', 'locale', TRUE);
It correctly switches to Spanish.

If I am in 'es' mode, and execute
Code: Pascal  [Select][+][-]
  1.   SetDefaultLang('en', 'locale', TRUE);
It doesn't switch back to English until the app is restarted (when the SetDefaultLang('en', 'locale', TRUE) is executed in Form.Create().)  Why so?

I have the jsoneditor.es.po and the jsoneditor.en.po in the appropriate /locale folder.
 
Title: Re: Online Package Manager
Post by: lainz on November 30, 2016, 10:18:47 pm
I don't know exactly, but maybe once the translation is set you need to restart the application.

Lazarus needs a restart. You can force a restart with:

Code: Pascal  [Select][+][-]
  1. OpenURL(ProgramDirectory + Application.ExeName);
  2. Application.Terminate;

I think once you change the constant strings from english to something else then the translator doesn't know anymore how to translate?

Like:

Open -> Abrir: this translates open to abrir
Abrir -> ?: doesn't know how to translate Abrir to something else, because the .po are in english to something else, not in spanish to something else.
Title: OPM update JSON Editor
Post by: minesadorada on December 01, 2016, 11:06:17 am
@lainz I think we have an alpha (attached V0.1.5.0)  Please review.
I would really appreciate it if you would revisit the Spanish translation and bring it up to date.

Switching Spanish -> English: It might work better with an .en.po file that matches the es.po in all entries
Title: Re: Online Package Manager
Post by: lainz on December 01, 2016, 01:58:09 pm
Here it is the updated translation.

I see some bugs:
- Remove: it removes the last item not the selected one
- Change language: it always display 'es' as language changed no matter what language I select (so no matter what I click I can't get back to english, even with a restart)
Title: Re: Online Package Manager
Post by: minesadorada on December 01, 2016, 03:16:19 pm
Here it is the updated translation.

I see some bugs:
- Remove: it removes the last item not the selected one
- Change language: it always display 'es' as language changed no matter what language I select (so no matter what I click I can't get back to english, even with a restart)
Bugs:
1.  I haven't changed the original remove code.  I'll have a look at it.
2. Spanish -> English works for me after a restart of the app. (Testing in Linux 64-bit)
2a. Does your cfg file have an entry 'Language=en'?  Does your /locale folder have jsoneditor.en.po (renamed from jsoneditor.po)?
2b If  Spanish -> English doesn't work in a Spanish system. then we can produce multiple distributions with different Project/options/Version Info/Language Options settings.

Thanks a million for the translation and review.  My Spanish still isn't good enough to do the job :)
Are you OK with GPL license?  Your (excellent) code is the core of the app, so you call the license.

I've done a bit more refactoring.  V0.1.6.0 to follow...
Title: Re: Online Package Manager
Post by: lainz on December 01, 2016, 04:16:04 pm
Quote
1.  I haven't changed the original remove code.  I'll have a look at it.

I know. The thing is that I created it to remove the last item, but the translation says that it removes the selected item.

Quote
2a. Does your cfg file have an entry 'Language=en'?  Does your /locale folder have jsoneditor.en.po (renamed from jsoneditor.po)?

No, I don't have one. But since the default translation is in english, why don't use the default po? That can be done?

Quote
Are you OK with GPL license?  Your (excellent) code is the core of the app, so you call the license.

Sure, GPL is OK.

We need to wait for GetMem, he said that maybe the external JSON structure changes, so we must wait for it.

Then upload it to sourceforge or github, or where you want, is the same for me.
Title: Re: Online Package Manager
Post by: lainz on December 01, 2016, 06:38:54 pm
Hi, this is the Spanish translation for the OPM
http://bugs.freepascal.org/view.php?id=31047

Please test and add to the Lazarus svn.
Title: Re: Online Package Manager
Post by: balazsszekely on December 02, 2016, 06:14:00 am
@lainz
Thanks for the translation. I see that @maxim already applied it.

@minesadorada, @lainz
Thanks for the application. It's very helpful.

@all
I have some personal issues to take care off. As soon as possible I will finish the update feature.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 02, 2016, 12:43:47 pm
OPM now has temporary forks of FPC's lib units zipper and httpclient.
Somebody should create a patch for FPC project with the extensions and changes needed.
The forks are maybe from FPC 3.0. (GetMem, confirm?)
A diff should be made against the original code, then all formatting changes should be removed. Only real functional changes should go to the patch.
Then the changes must be applied to latest FPC trunk code and the final patch made against it.
FPC trunk has many changes for Unicode etc.
This would be a good task for somebody else than GetMem to share the work-load.
The code can be used directly from FPC libs only when it is included in a version that is the minimum requirement for Lazarus. So this is a long term plan.

There is another fork, VirtualTreeView.
Its master version may be added and maintained in Lazarus sources later. Now there are many forks and versions, the situation is messy.
Title: Re: Online Package Manager
Post by: minesadorada on December 02, 2016, 12:50:53 pm
Here it is the updated translation.

I see some bugs:
- Remove: it removes the last item not the selected one
- Change language: it always display 'es' as language changed no matter what language I select (so no matter what I click I can't get back to english, even with a restart)
1. Simpler to change the hint text :)
2. I have the answer to the Spanish -> English translation difficulty.
It's all about the .en.po file.
By default, Lazarus makes a .po file with the msgstr entries empty (which is correct behaviour)  However, when you want to make an .en.po file, you have to copy over the (English) msgid entries to the msgstr entries.  Then you can switch to English 'on-the-fly' just as you can with Spanish.  You learn something every day....
For the next version, I'll do that and compile them into .mo files ready for distribution.
3. The cfg file is now in the GetAppConfigFile(false) folder - which is better for Linux and Windows permissions.

A bit busy, but it should be ready by Monday.
Title: Re: Online Package Manager
Post by: lainz on December 02, 2016, 01:18:45 pm
@minesadorada

Wow, never imagined that =) And you solved it, excelent!

@JuhaManninen

Quote
The code can be used directly from FPC libs only when it is included in a version that is the minimum requirement for Lazarus. So this is a long term plan.

So this depends on when next FPC will be released and the changes on these libraries must be approved also for the next release of FPC.

If OPM will be available in the next lazarus, also depends if the new FPC for that date is also released, so we must "stay tuned"  ::)
Title: Re: Online Package Manager
Post by: JuhaManninen on December 02, 2016, 02:04:08 pm
If OPM will be available in the next lazarus, also depends if the new FPC for that date is also released, so we must "stay tuned"  ::)
Everything in Lazarus trunk, including OPM, will be included in next major version release.
Even if FPC had a major release before that and the to-be-made patch was included there, OPM must still have the forked units because Lazarus should compile with 2 latest compiler versions.
FPC release cycle is slow so this will take time.
Anyway, who will make the patches? It may require some refactoring, too. It would also make sense to update the forked units to latest FPC trunk versions.
I can do it later but I also have many things to do.
Title: Re: Online Package Manager
Post by: balazsszekely on December 02, 2016, 02:43:48 pm
@Juha
Quote
The forks are maybe from FPC 3.0. (GetMem, confirm?)
Yes.

"opkman_httpclient.pas" was recently synchronized with "fphttpclient.pp"(FPC trunk) , when proxy support was added. So the only unit that needs to be synchronized is "opkman_zip.pas" with "zipper.pp"", but please be careful not to reintroduce the overflow bug, since it wasn't fixed in FPC trunk.

Quote
There is another fork, VirtualTreeView.
Its master version may be added and maintained in Lazarus sources later. Now there are many forks and versions, the situation is messy.
PS: I wouldn't worry about VirtualTreeView, according to @Luiz we can add any version we like. Once it's added to Lazarus sources, I can remove my fork and link OPM to the one in the Lazarus trunk(10 min. of work).
Title: Re: Online Package Manager
Post by: JuhaManninen on December 02, 2016, 03:06:31 pm
... "zipper.pp"", but please be careful not to reintroduce the overflow bug, since it wasn't fixed in FPC trunk.
Yes, this one:
 http://bugs.freepascal.org/view.php?id=30800
I don't know why it takes so long for FPC patches to get applied. It is annoying.
Yes, I know some patches for Lazarus have been ignored for a long time as well in past. Now the situation is better, most patches are either applied or rejected in reasonable time.
Title: Re: Online Package Manager
Post by: minesadorada on December 02, 2016, 03:08:55 pm
Version 0.1.6.1 of the Update JSON Editor

Now bi-lingual on demand.  Spanish and English translations
Compiles to Win32/64 Linux32/64 Darwin32 Tested in Win64 and Linux64
Title: Re: Online Package Manager
Post by: balazsszekely on December 02, 2016, 03:54:19 pm
@minesadorada

Please add this line to the SaveToFileMethod:
Code: Pascal  [Select][+][-]
  1.   Streamer := TJSONStreamer.Create(nil);
  2.   Streamer.Options := Streamer.Options + [jsoUseFormatString]; //<--this one
  3.   s.AddText(Streamer.ObjectToJSONString(Self));
Title: Re: Online Package Manager
Post by: minesadorada on December 02, 2016, 04:30:15 pm
Done.  To 0.1.7.0

Windows 32/64-bit Installer (Inno Setup) https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe)
I can do a DEB file when I next boot into Linux
Title: Re: Online Package Manager
Post by: wp on December 03, 2016, 12:13:33 pm
I am not sure if the git repository of the OPM still exists. If yes I assume that it is a mirror of the version included in Laz trunk.

In this case, there is a problem that people using older Lazarus versions are able to compile the package. I just compiled the trunk version with Laz 1.6, and ran into several issues:
Title: Re: Online Package Manager
Post by: JuhaManninen on December 03, 2016, 12:28:04 pm
I am not sure if the git repository of the OPM still exists. If yes I assume that it is a mirror of the version included in Laz trunk.
I think it is now disabled or deprecated. It already created confusion as you can see earlier in this thread.
OPM sources can be downloaded separately from Lazarus trunk SVN.

Quote
...
With these modifications, the current version of OPM can be compiled with Laz 1.6
Sounds good.
As you are now testing the issue, you can as well commit those changes yourself. You have commit rights in components dir, don't you?
Title: Re: Online Package Manager
Post by: wp on December 03, 2016, 12:47:49 pm
Done. I always forget this because I am hesitant to modify other people's code.
Title: Re: Online Package Manager
Post by: balazsszekely on December 03, 2016, 02:28:14 pm
Thanks @wp. Feel free to modify the code whenever you like.

PS: I deleted the github repository.
Title: Re: Online Package Manager
Post by: minesadorada on December 04, 2016, 09:38:39 am
Bugfix for json_packager - to 0.1.8
- V0.1.7 had a bad config file name.  Fixed.
- If app is moved to a new folder, it makes a unique config filename (so each component can have its own stored paths)
- When saving the json, it suggests as the filename '.\updates\update_<component zipfilename>.json'
- Added 'New' to file menu (todo: translate -> Español)

Windows installer updated: https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe)
Title: Re: Online Package Manager
Post by: lainz on December 04, 2016, 03:11:20 pm
Hi, here it is the updated spanish translation for the external json editor.

Maybe we must upload it in a revision control? I have both accounts in sourceforge and github, we have also the new Lazarus CCR in GitHub, we can upload the first code in there.
Title: Re: Online Package Manager
Post by: minesadorada on December 04, 2016, 03:28:22 pm
Hi, here it is the updated spanish translation for the external json editor.

Maybe we must upload it in a revision control? I have both accounts in sourceforge and github, we have also the new Lazarus CCR in GitHub, we can upload the first code in there.
Thanks for the translation.  I have access to the SVN ccr repository (which I use for other components), so if I commit to there, the GitHub will mirror it OK?
Title: Re: Online Package Manager
Post by: lainz on December 04, 2016, 03:42:35 pm
Hi, here it is the updated spanish translation for the external json editor.

Maybe we must upload it in a revision control? I have both accounts in sourceforge and github, we have also the new Lazarus CCR in GitHub, we can upload the first code in there.
Thanks for the translation.  I have access to the SVN ccr repository (which I use for other components), so if I commit to there, the GitHub will mirror it OK?

If you can upload it in the SVN ccr is a good place. About the github mirror, I don't have a server to create the automatic mirroring, so is not available. But don't worry about that. The idea is that the source don't get lost :)
Title: Re: Online Package Manager
Post by: balazsszekely on December 04, 2016, 03:58:57 pm
@minesadorada
1. Try to feed invalid JSONs to your application, then make sure the exceptions are handled properly(see attachment for invalid JSON). This is crucial for me(OPM), since the update process will run in a worker thread. Unhandled exceptions are not desired. I'm gonna use the same code base(more or less...I don't need the GUI part).
2. I noticed that you allow multiple lpk's with the same name. All package names must be unique.
Can you please fix this issues?

+1 for the revision conrol.

PS: I may add one or more fields in the future(objects to JSON), hope this is not a problem.
Title: Re: Online Package Manager
Post by: minesadorada on December 04, 2016, 04:15:48 pm
@GetMem.  OK  - will do (not today, because its the UK Snooker Final, though I will get a gap in the mid-session interval) :)

Committed to CCR as V0.1.8.0
Title: Re: Online Package Manager
Post by: balazsszekely on December 04, 2016, 05:03:40 pm
@minesadorada
Take your time, it's not urgent.
Title: Re: Online Package Manager
Post by: lainz on December 04, 2016, 05:22:42 pm
Well it's really simple to add the exception. You can do the same as SaveToFile(): boolean, change LoadFromFile to a function with a boolean.

I suggest to remove the ShowMessage from the exception code, and move it to the else part of the SaveToFile, so it looks like

if SaveToFile() then
  ShowMessage('ok')
else
  ShowMessage('not ok');

And with the Load the same.

if LoadFromFile() then
begin
 // Put everything in the controls
end
else
  // do nothing, just show an error message.

And the exception with no code will be usable by GetMem. But he must add a LoadFromURL or something like that.
Title: Re: Online Package Manager
Post by: minesadorada on December 04, 2016, 06:51:07 pm
All good suggestions lainz.

0.1.11.0 committed to ccr svn (https://svn.code.sf.net/p/lazarus-ccr/svn/applications/json_packager (https://svn.code.sf.net/p/lazarus-ccr/svn/applications/json_packager))
- Changes as suggested by lainz
- Error-check for duplicate .lpk entries implemented as requested

@GetMem - if you add any fields, can you specify any relevant error checks with them please?
Title: Re: Online Package Manager
Post by: lainz on December 04, 2016, 09:57:05 pm
Thanks for implementing the suggestions. I already implemented them when I wrote the message, but by some unknown reason I get the spanish translation broken, something about ANSI? And then every special character inside was broken. So I better let you made the changes, I don't know if was a problem with lazarus or with the po editor.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 07:54:14 am
@minesadorada
Quote
if you add any fields, can you specify any relevant error checks with them please?
You don't have to do any further error checks, it will work fine with the code suggested by @lainz, however please rename DownloadURL to DownloadZipURL(or something similar). I already have a DownloadURL, which now points to the "external JSON". To prevent confusion we should give a different, unique name.

PS: Today/tomorrow the update feature will be ready.
PS1: I also renamed a few class since I already have similar names. Please download the zip, and replace your main form. Other then a few names is the same unit.


Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 09:58:31 am
@minesadorada
Quote
if you add any fields, can you specify any relevant error checks with them please?
You don't have to do any further error checks, it will work fine with the code suggested by @lainz, however please rename DownloadURL to DownloadZipURL(or something similar). I already have a DownloadURL, which now points to the "external JSON". To prevent confusion we should give a different, unique name.

PS: Today/tomorrow the update feature will be ready.
PS1: I also renamed a few class since I already have similar names. Please download the zip, and replace your main form. Other then a few names is the same unit.



A global rename from DownloadURL -> DownloadZipURL seemed to do the trick.

- To V0.1.12.0 in svn ccr
- Updated .po files
- InnoSetup install updated

Updated test update: https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini.json to new fieldname
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 10:25:00 am
@minesadorada

Apparently you missed PS1 from my previous post. I attach the zip again, since I changed something. Your project also have a memory leak somewhere:
Project Options-->Debugging-->Use HeapTrc unit.

Thank you!

Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 11:01:46 am
Hi Getmem,
Thank you for the review.
Have you got write access to the ccr svn?  I missed your attached zip because I assumed dev was now under version control lock/checkouts from the svn.

After a quick look,I see only 2 changes - can you confirm?
1- Commenting out in form.create
Code: Pascal  [Select][+][-]
  1. {  Self.AutoAdjustLayout(lapAutoAdjustForDPI, Self.DesignTimeDPI,
  2.     Screen.PixelsPerInch, Self.Width, ScaleX(Self.Width, Self.DesignTimeDPI));}
2- Changing fieldname from DownloadURL -> DownloadZipURL
If they are the only 2 changes, I can update the svn version with (1) easily enough.  It's a good idea to add to the Version History section in umain with any changes.

Re:Memory leak
It seems to come from this recursive procedure within Form.Create (which I'd like to keep)
Code: Pascal  [Select][+][-]
  1.  
  2. procedure TfrmMain.FormCreate(Sender: TObject);
  3. var
  4.   sLang, INIFilePath: string;
  5.  
  6.   procedure CreateUniqueINI(aCount: integer);
  7.   // Recursively loop until correct INI found, or new one created
  8.   begin
  9.     INIFilePath := GetAppConfigFile(False) + IntToStr(aCount);
  10.     CFG := TIniFile.Create(INIFilePath);
  11.     if CFG.ReadString('Options', 'AppPath', ProgramDirectory) <> ProgramDirectory then
  12.     begin
  13.       CFG.Free; // Ditch the old one
  14.       Inc(aCount);
  15.       CreateUniqueINI(aCount); // Make a new one
  16.     end;
  17.   end;
  18. //... more code
  19.  
Any suggestions to solve it? CFG is a private form member.

I'll hold fire until I see your thoughts.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 11:17:33 am
Quote
After a quick look,I see only 2 changes - can you confirm?
   TPackageFiles --> TUpdatePackageFiles
   TPackageData --> TUpdatePackageData
  etc...
I only changed names, since I already have TPackageFiles in OPM and it's very confusing. Compare the two files with WinMerge or whatever tool you use for comparing. SVN clients already have built in tools for that.

Quote
Have you got write access to the ccr svn?  I missed your attached zip because I assumed dev was now on lock/checkouts from the svn.
No.

Quote
It seems to come from this recursive procedure within Form.Create (which I'd like to keep)
I did not have time to check it, since I'm busy with OPM. I wil take a look later.
       
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 12:06:55 pm
To:  0.1.13.0: Renamed TPackageData ->  TUpdatePackageData (GetMem)
            Renamed TPackageFiles -> TUpdatePackageFiles (GetMem)
            Comment out Self.AutoAdjustLayout line in Form.Create (GetMem)
            Removed StrUtils from uses (minesadorada)
            Fixed memory leaks with CFG and slErrorList (minesadorada)
            Moved inline procedure CreateUniqueINI to separate function (minesadorada)
            Added Const C_DEBUGMESSAGES=TRUE/FALSE (minesadorada)

Memory leaks were weird.  I had to manually free 2 form members (a TiniFile and TStringList) in the QueryClose method to fix them.  I'd assumed all owned TForm objects were automatically freed on exit. (Laz1.7/fpc3.1.1)
Title: Re: Online Package Manager
Post by: JuhaManninen on December 05, 2016, 12:34:30 pm
Memory leaks were weird.  I had to manually free 2 form members (a TiniFile and TStringList) in the QueryClose method to fix them.
It is not weird as Pascal has no garbage collection.
FormDestroy may be more logical place to free them. It makes kind of a pair with FormCreate.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 01:57:27 pm
@minesadorada

If you commented the AutoAdjustLayout I will see the application badly or not scaled. There is a Scaled property in 1.7 you can use to do the High DPI stuff, but is under construction AFAIK.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 02:24:23 pm
You don't have to comment out that line, only change a few names...I attached the whole project fixed.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 02:55:56 pm
Ok. The update will look like this(scrennshot1). When expanded(screenshot2).
Do we need color/background color? I have tried a lot of combination, it looks best with a bold/black text.
Popup balloons, memo with more detailed text?
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 03:29:17 pm
You don't have to comment out that line, only change a few names...I attached the whole project fixed.
Thanks for that @GetMem
Committed to ccr svn as V0.1.14.0

json packager code updaters: Please update the umain Version History and project versioninfo to save me time doing diffs and merges..  The project is under svn version control.

@Getmem - opm: Good work! When trunk is updated I'll have a look.
I wouldn't worry about details of appearance until the update mechanism is tested for functionality.  How does the 'force update' look?  Perhaps when true, then 'New' could be different text?
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 04:38:31 pm
Memory leaks were weird.  I had to manually free 2 form members (a TiniFile and TStringList) in the QueryClose method to fix them.
It is not weird as Pascal has no garbage collection.
FormDestroy may be more logical place to free them. It makes kind of a pair with FormCreate.

Hold on.
So you're saying that some member objects of TForm instantiated in TForm.Create have to explicitly freed in TForm.Destroy?
I always assumed that objects in a TForm derivative class were freed when the TForm derivative class was destroyed - automatically (garbage collection within a class)  Mind you, the Tstrings.Create method doesn't specify a parent; nor TIniFile.Create whcih I thought was curious.
Thanks for that info - I'll have to revisit some old code...

Committed to ccr svn as V0.1.15.0
- Objects freed in Form.Destroy as per JuhaMannien's advice
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 05:47:11 pm
Quote
@lainz
A question, the zip must be generated with the OPM or it can be any zip (like master.zip from github)?
No. You just simply zip your source. It can be the master.zip generated by github or your next stable version zipped. It's up you.

Quote
The zip must contain inside the normal .json or not?
No again. You generate the json with the tool created by you and minesadorada and send me the link.  That's it. In fact to make it easier OPM will generate the initial JSON(it's not yet imlemented), this can be later edited by your tool.

The zip/json generated by the OPM was for me, to make my work easier. It's not needed at all. If somebody wants to add a new package to the repository, just send me the link to the zip file.

I will add all the info to wiki soon.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 05:59:41 pm
Thanks. Well I think once you made the first external json you don't need the tool if you don't change the url or the zip names / package names. Just changing the version information and nothing more.
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 06:09:33 pm
Thanks. Well I think once you made the first external json you don't need the tool if you don't change the url or the zip names / package names. Just changing the version information and nothing more.
I can't understand the lack of automation here.
If GetMem is unavailable, currently the update system fails.  Am I right there?

Why can't OPM regularly poll the http://<update_url>/<update_componentname>.json list automatically and look for version updates?  This could even be in a background thread when OPM loads (as an user-chosen option)  All that's needed is a standardised json filename for updates, and json packager provides that as a default.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 06:19:21 pm
If I understand it well, the external json replaces the external zip that was working before. Now it's better because you actually know the new version you will try to download and install.

GetMem already said that is not only the external json because downloading all the json takes more time than downloading the main json from the OPM server.

About updating the main server, that's not resolved yet, so we must wait until they decide how it will be managed. Currently you're right, GetMem is the only updating the packages. But when the package already contains an extenal json you can update it by yourself how many times you want.
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 06:22:13 pm
If I understand it well, the external json replaces the external zip that was working before. Now it's better because you actually know the new version you will try to download and install.

GetMem already said that is not only the external json because downloading all the json takes more time than downloading the main json from the OPM server.

About updating the main server, that's not resolved yet, so we must wait until they decide how it will be managed. Currently you're right, GetMem is the only updating the packages. But when the package already contains an extenal json you can update it by yourself how many times you want.
That makes no sense.  The external json is trivial in size and quick to download and check. 41 (currently) update json files are no great burden. They point to the location of the external update zipfile, which could be of considerable size and only downloaded on user request.  Currently AFAIK the 'master' json is downloaded each time OPM shows,
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 06:25:55 pm
Well he tested it and says that takes time (I've readed it somewhere here in this thread If I remember it well), so there is a kind of problem here, real one, or the library for downloading is not as fast, or something else is happening :)
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 06:29:41 pm
Well he tested it and says that takes time (I've readed it somewhere here in this thread If I remember it well), so there is a kind of problem here, real one, or the library for downloading is not as fast, or something else is happening :)
Let me see if I understand it correctly:
1. As a server cron job, the update jsons are polled (i.e. weekly) and merged into the master json file on the server when a new version is detected.  This is invisible to users and requires no interaction by GetMem.
2. The master json file is downloaded when OPM starts on the user's system - which is current behaviour.  This is the speed bottleneck, if there is any.  It could be eased by downloading a small Hash file and checking against the local version.

I'm not seeing any issues with updating and speed.

All the component maintainer has to do is update their previously-specified UpdateZipfile and modify the corresponding update_<componentname>.json file  (that's what the json editor does).  No notifications nor human interaction are necessary.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 06:40:01 pm
Ok well we must see if they like that idea. I personally think is better, only we need a mantainer for the first commit, then the responsability is of the mantainers. On the other hand, if I don't mantain the package anymore and the download get's broken, the repository will not have that component anymore.

So is not only merging the main json, but the zip files. This was talked some days or weeks ago in this thread, and there is no consent about how to manage this.

I like your idea, but I'm not the one that will do it real or takes the decision of making it real. And positions against the automated stuff are always on.
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 06:43:59 pm
I like your idea, but I'm not the one that will do it real or takes the decision of making it real. And positions against the automated stuff are always on.
I totally agree.  "The man who pays the piper calls the tune" :)

Let's see which sustainable system for package maintainers @GetMem settles on.

No harm in proposing ideas - @GetMem is a reasonable person; open to ideas AFAIK.

Quote
On the other hand, if I don't mantain the package anymore and the download get's broken, the repository will not have that component anymore.
With the system as proposed: the auto-checking would automatically remove the component from the master tree if the URL went bad.  That's correct behavior for unmaintainable/obselete components, surely?  That's why many components from the ccr were not included in the initial master list AFAIK.

Quote
So is not only merging the main json, but the zip files. This was talked some days or weeks ago in this thread, and there is no consent about how to manage this.
Why merge the zip files on the OPM server by default? The initial (vetted) zips can be canonical. The user chooses to update their local repository or not (with a suitable warning).  The 'Available' column reflects the 'available update version'.  That makes sense for a user. I thought that was the point of the 'force update' option in the update json - where the canonical version is somehow faulty or out-of date and has to be replaced on the server - not default behaviour.

I'm trying to look 3 - 5 years ahead with Laz 2.x/OPM when active maintenance of OPM may not be so available as now.

I'm very enthusiastic about @GetMem's initiative - it was an needed idea for Lazarus waiting to happen, and makes Lazaus look more professional to new and old users alike.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 07:05:21 pm
@minesadorada
Quote
I can't understand the lack of automation here.
If GetMem is unavailable, currently the update system fails.  Am I right there?
No. You completely misunderstood the update system, but that's ok since nobody knew how it should work or what would be the optimal solution.

Quote
Why can't OPM regularly poll the http://<update_url>/<update_componentname>.json list automatically and look for version updates?  This could even be in a background thread when OPM loads (as an user-chosen option)  All that's needed is a standardised json filename for updates, and json packager provides that as a default.
A pull in every 6 sec is ok? Currently is 6000 ms. :D Though I plan to extend a little bit, say 1 minute to minimize traffic load.

@lainz
Quote
Well he tested it and says that takes time (I've readed it somewhere here in this thread If I remember it well), so there is a kind of problem here, real one, or the library for downloading is not as fast, or something else is happening :)
True. I said that once, but the problem is now solved. I save the last update value, then from time to time OPM pull the json. For example after you update the external JSON, the user won't see the changes instantaneously, it will take 1-2 min(max). I believe this is more then ok. The pull is done in a background thread, so it won't interfere with the GUI.


The basics steps:
1. I add the package to the main repository. This step is not yet automatized, I have to do it manually. This is why you guys created that zip/json("Create repository package")
2. Once the package is added to the main repository you can generate the "external json", then change the version, link to external zip, etc..whenever, however you like
3. Send me the link to the external JSON, so I can add to the package again(see: screenshot). This has to be done only once.
4. After this step everything is automatic, the OPM from time to time(1 min or so) will check the external json, is something has changed, OPM notify the user, on request download the zip, install the new package.

Hope is clear now. I believe this is how @Juha, @lainz and others envisioned from the beginning or at least something similar.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 07:20:27 pm
Thanks. Now seems everything clear. When you consider it ready tell us so we can create the external json.
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 07:24:11 pm
+1 Thanks for the clarification.

One question: What do you envision are the consequences of checking the 'force update' option in the update_json file?  What are the guidelines?
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 08:52:34 pm
Quote
@minesadorada
One question: What do you envision are the consequences of checking the 'force update' option in the update_json file?  What are the guidelines?
It's useful when you change something in the source, but don't want to increase the version number yet. This is specially true for trunk, a lot of commits are done before the version number is modified. By setting ForceUpdate to true, you ensure that the user gets the latest updates, even if the version number stays the same.
Title: Re: Online Package Manager
Post by: minesadorada on December 05, 2016, 09:10:36 pm
Quote
@minesadorada
One question: What do you envision are the consequences of checking the 'force update' option in the update_json file?  What are the guidelines?
It's useful when you change something in the source, but don't want to increase the version number yet. This is specially true for trunk, a lot of commits are done before the version number is modified. By setting ForceUpdate to true, you ensure that the user gets the latest updates, even if the version number stays the same.

Now I'm really puzzled.

So, If I set ForceUpdate=TRUE what does the user see?
According to your scenario, I can make a minor update (with no version number increase) and that can force the user to update.  I can make a major update, with many new features and a new version number, but no forceupdate=true, and the user can ignore it.

I just don't get it.

Surely any change to the source would trigger a version update - even if it's 0.0.n+1.0?  Maybe trunk Lazarus developers don't do that, but why should that paradigm be adopted by independent component developers by default in the OPM system?  Lazarus developers use 'svn revision#' but OPM only allows for Version Quads.

When should a package maintainer set forceupdate=true, and why? 
That is my real question, and I don't understand your previous answer sufficiently.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 10:02:23 pm
Quote
So, If I set ForceUpdate=TRUE what does the user see?
According to your scenario, I can make a minor update (with no version number increase) and that can force the user to update.  I can make a major update, with many new features and a new version number, but no forceupdate=true, and the user can ignore it.

If you set forceupdate true but don't change the version number, the user sees nothing, as far as I understand the system.

If you do a major update with version number, and force update is false, the user will see the new version number.

Updates are not forced never I think, is just to 'force the download of the latest zip, doesn't matter what it contains'.

Quote
When should a package maintainer set forceupdate=true, and why?


I don't know. If I will use the master.zip of github it will gives you always the latest sources, doesn't matter what the external.json says!

So it's a bad idea to use master.zip of github as I understand it now. Or I must always ensure that it will work, or always increase the last number in the release builds, causing the user to download every day my package  ::)

Force updates will download per user request, OPM can't see if we made changes or not in the zip. Notifications will not be triggered only by setting forceupdate to true.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 10:25:50 pm
Perhaps ForceUpdate is the wrong word. I mean you cannot force anything, in the end the user decides if he/she want to update or not. However if you want to notify the user that a new version is available, without actually increasing the version number, you should set ForceUpdate to true. From the users point of view there is no difference between ForceUpdate = true(same version number) or an increased version number, they will see the same "alert" message, namely that a new version is available for download/install. Force update is for the package maintainers, I explained in my previous post why I consider it useful. If you don't like the idea, no problem, we can come up with something better.

However we need a system that makes possible to trigger an update message, without increasing the version number. I' m open to suggestions.
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 10:30:46 pm
Ok now I get it.  I was thinking it wrong.

For example you download now the latest zip right? Then force update is still true. So the dialog keeps saying that there's a new version available?
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 10:39:30 pm
Quote
For example you download now the latest zip right? Then force update is still true. So the dialog keeps saying that there's a new version available?
Yes. I believe this is specially useful for your master.zip. You don't have to change the version number, just leave ForceUpdate(ForceNotify) to true. Perhaps we can combine with a date? So the OPM will only notify the user when the date also changes?
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 10:43:36 pm
Oh I see now the utility.

Well can be a date time. Since can be several updates in a day? Or only one per day. As you think is best. Maybe only once per day is the best so user don't loose too much time updating again and again in the same day.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2016, 11:00:39 pm
Quote
Well can be a date time.
Sure, no problem. Datetime is perfectly fine. Let's wait and see what other people has to say about this. The collective brain power is always better the the individual one.  8-)
Title: Re: Online Package Manager
Post by: lainz on December 05, 2016, 11:05:14 pm
Sure!  8)
Title: Re: Online Package Manager
Post by: minesadorada on December 06, 2016, 10:23:08 am
Couple of small bugfixes for the json Editor.  To v0.1.15.0
Please update from svn

There's an update file for Cryptini here that you can use for testing:
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini.json

P.S. Just updated OPM from trunk, and tried updating OPM to 'V4.8.7.4' but no luck (see attached).  Work-in-progress, so nothing to worry about?
2nd screenshot was after clicking OK.  It froze at that point.
Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 10:36:06 am
Quote
P.S. Just updated OPM from trunk, and tried updating OPM to 'V4.8.7.4' but no luck (see attached).  Work-in-progress, so nothing to worry about?
2nd screenshot was after clicking OK.  It froze at that point.
It's not ready yet...
Title: Re: Online Package Manager
Post by: minesadorada on December 06, 2016, 10:39:54 am
Understood.  I was too eager to see it!
Title: Re: Online Package Manager
Post by: minesadorada on December 06, 2016, 10:42:56 am
Perhaps ForceUpdate is the wrong word. I mean you cannot force anything, in the end the user decides if he/she want to update or not. However if you want to notify the user that a new version is available, without actually increasing the version number, you should set ForceUpdate to true. From the users point of view there is no difference between ForceUpdate = true(same version number) or an increased version number, they will see the same "alert" message, namely that a new version is available for download/install. Force update is for the package maintainers, I explained in my previous post why I consider it useful. If you don't like the idea, no problem, we can come up with something better.

However we need a system that makes possible to trigger an update message, without increasing the version number. I' m open to suggestions.

Now you've explained it, I think it's a good feature as it is.  The hint text on the GUI editor is "'This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?'"

I can see the difficulty with expiring the notification though.
Title: Re: Online Package Manager
Post by: CharlyTango on December 06, 2016, 10:56:40 am
beeing eager to user OPM i checked it out from the trunk and tried it with Lazarus 1.6

OPM was compilable with Lazarus 1.6 , showed his main window and tried to load the list of available packages.

But it stoppes with an information messagebox

Code: Pascal  [Select][+][-]
  1. Invalid JSON File
  2. "LazSerial": Could not Convert variant of type (Null) into type (String)

furthermore an access violation occured when closing the OPM window

Hope that Info helps getting it stable.

Q: ist there any possibility of a formal bugtracking (let's say in http://bugs.freepascal.org (http://bugs.freepascal.org)) ?
Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 10:57:52 am
@minesadorada
You should rename ForceUpdate to ForceNotify both in GUI and in the JSON class(TUpdatePackageData),  ForceNotify is more suggestive. You can also send me the link to a json(one of your packages), so we can run a few test.
Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 11:00:49 am
Hi CharlyTango,

Thanks for testing OPM.

Quote
But it stoppes with an information messagebox
furthermore an access violation occured when closing the OPM window
Please take the latest trunk version again(I just commited a few changes). After you reinstall the package, go to the OPM Options, then press the "Restore Defaults" button. Your config file points to an older, obsolete repository(hence the error). 
Title: Re: Online Package Manager
Post by: minesadorada on December 06, 2016, 12:09:31 pm
@minesadorada
You should rename ForceUpdate to ForceNotify both in GUI and in the JSON class(TUpdatePackageData),  ForceNotify is more suggestive. You can also send me the link to a json(one of your packages), so we can run a few test.
OK. Done.
0.1.16.0: Renamed ForceUpdate to ForceNotify
The translation has somehow messed up - its a work in progress.

I made 2 update jsons; one with forcenotify=true using the new format:

https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini.json
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/update_cryptini_force.json
Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 02:55:40 pm
@minesadorada
Please update to the latest Lazarus trunk then test cryptini update. Thanks!

@lainz
Can you give me the link to your JSON? I will add it later to the main repository.
Title: Re: Online Package Manager
Post by: minesadorada on December 06, 2016, 03:04:28 pm
@GetMem I have Lazarus 1.7 SVN Revision 52081M - is that OK or do I need to update?
Title: Re: Online Package Manager
Post by: lainz on December 06, 2016, 03:48:05 pm
BGRA Controls
https://raw.githubusercontent.com/bgrabitmap/bgracontrols/master/update_bgracontrols.json
https://raw.githubusercontent.com/bgrabitmap/bgracontrols/master/update_bgracontrols_force.json

BGRA Controls FX
https://raw.githubusercontent.com/bgrabitmap/bgracontrolsfx/master/update_bgracontrolsfx.json
https://raw.githubusercontent.com/bgrabitmap/bgracontrolsfx/master/update_bgracontrolsfx_force.json

About BGRA Bitmap, I need to tell circular for what is this first, then we will have one also for bgrabitmap.

When you test that the two works well, I will keep only the first (update_bgracontrols.json) and remove the force one, but I will add the force option to the first.
Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 04:43:43 pm
@ minesadorada
Please take the latest version. I'm afraid it's buggy, but at least you can run a few tests.

@lainz
No worries! This is just for testing purposes, still a long way to go, you can tell @circular later. I will add the link as soon as possible.
PS: Done. I added the ForceNotify version just to trigger a message. Please update to the latest trunk.

Thank you guys for you help!
Title: Re: Online Package Manager
Post by: CharlyTango on December 06, 2016, 05:18:28 pm
Hi CharlyTango,

Thanks for testing OPM.

Quote
But it stoppes with an information messagebox
furthermore an access violation occured when closing the OPM window
Please take the latest trunk version again(I just commited a few changes). After you reinstall the package, go to the OPM Options, then press the "Restore Defaults" button. Your config file points to an older, obsolete repository(hence the error).

OK, THX -- that worked fine.
OPM main window started and after pressing "Restore Defaults" the package List was retrieved and showed. -- great work - thx

Using OPM shows a "NEW" mark at onlinepackagemanager indicates that version 1.0.1.0 would be available.
Installing the new version via OPM failed -- it seems that an old version is downloaded and it does not work.
The version directly from the trunk is ok.

my 3cents...:

The OP seem to have the potential to a crucial part of Lazarus.
One of the most time consuming tasks ist the safe installation and updating of packages.
Therefore OPM should have the best support -- Did you thought about a category in bugs.freepascal.org (http://bugs.freepascal.org) ?

The first impression of OPM: Looks fine, but what i miss is a description of the package because i don't know what the seldom used packages do.

Filtering of installed packages and their update status would be nice too.

Good Job -- thx

Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 05:35:37 pm
@CharlyTango
Quote
Using OPM shows a "NEW" mark at onlinepackagemanager indicates that version 1.0.1.0 would be available.
Installing the new version via OPM failed -- it seems that an old version is downloaded and it does not work.
The version directly from the trunk is ok.
Unfortunately the update feature is not yet implemented(we are working on it), for now please ignore it. However you can test all the other functionality.

Quote
first impression of OPM: Looks fine, but what i miss is a description of the package because i don't know what the seldom used packages do.
See screenshot1, however not all package has a detailed description, depends on the package maintainer.

Quote
Filtering of installed packages and their update status would be nice too.
You can find a lot of filters in the top of the form, I can add more if necessary. See screenshot2

Quote
Therefore OPM should have the best support -- Did you thought about a category in bugs.freepascal.org ?
Please report at bugs.freepascal.org(category Lazarus/Packages) or here.

Quote
Good Job
Thanks.

Title: Re: Online Package Manager
Post by: lainz on December 06, 2016, 06:22:13 pm
Quote
@lainz
No worries! This is just for testing purposes, still a long way to go, you can tell @circular later. I will add the link as soon as possible.
PS: Done. I added the ForceNotify version just to trigger a message. Please update to the latest trunk.

I've installed bgrabitmap, bgracontrols and bgracontrolsfx with your tool in a few minutes (that's by my slow connection). So it works fine. Then it keeps displaying that there's a new version: for bgracontrols, bgracontrolsfx, cryptini and onlinepackagemanager.

cryptini seems that is not showing forceupdate in the json, but it still shows that there's a new version available (because is different the external version from the repository version), but I don't have it installed, that's ok?
Title: Re: Online Package Manager
Post by: minesadorada on December 06, 2016, 07:06:43 pm
@ minesadorada
Please take the latest version. I'm afraid it's buggy, but at least you can run a few tests.
Sorry @GetMem - I've been out playing golf this afternoon in the Tenerife sunshine. (par+2 - yay!)  I'll catch up tomorrow as I'm currently celebrating with a very large Scotch :)
Title: Re: Online Package Manager
Post by: lainz on December 06, 2016, 08:32:13 pm
@minesadorada

When you have time change the AutoAdjustLayout lines with this:

Quote
Self.AutoAdjustLayout(lapAutoAdjustForDPI, 96, Screen.PixelsPerInch, Self.Width, ScaleX(Self.Width, 96), False);

That will work only under Lazarus 1.7+, because the ammount of parameters and some more things about High DPI has changed recently.

Edit: Or we can remove that and use the Scaled property, but it has (currently) a disadvantage: you must compile it with a setting of 96 dpi to work well.
Title: Re: Online Package Manager
Post by: balazsszekely on December 06, 2016, 10:14:12 pm
@lainz
Yes. This is how it should work. If you install cryptini for example the alert message will disappear, since ForceNotify is false.

@minesadorada
Enjoy your time.  :)
Title: Re: Online Package Manager
Post by: lainz on December 07, 2016, 12:11:45 am
Hi GetMem, seems that is working really well. I hope you can talk with the lazarus developers (well, with the others, you are one of them now) and include this package as one of the pre-installed with Lazarus, so with that it will become more visible to all developers that open the package menu in the IDE, and more people will use it.

Edit:
@minesadorada

Hi, when you have time remove the AutoAdjustLayout from OnCreate and just check the option Scaled in the object inspector for the form, now is working really well and is the best from now using Lazarus 1.7 to get HighDPI working well.
Title: Re: Online Package Manager
Post by: minesadorada on December 07, 2016, 07:50:03 am
@minesadorada

Hi, when you have time remove the AutoAdjustLayout from OnCreate and just check the option Scaled in the object inspector for the form, now is working really well and is the best from now using Lazarus 1.7 to get HighDPI working well.
@lainz: On my Laz 1.7 Rev 52081M I don't see a Scaled property in the OI - only a PixelsPerInch property
or.. can Scaled:=True be set in Form.Create inside an {$IFDEF} version check, and if so, what is the fallback?
P.S. If I set the form.Autosize=True, and form.Borderwidth=8 the form looks OK on my system.

re trunk: I'm reluctant to mess with my cross-compiling dev environment, unless you can suggest a way to upgrade to trunk in a simple way. (not fpcup)  I have the latest source of trunk - can it be patched in by simply merging with my existing setup somehow?

@GetMem: Just installed latest OPM and the updating goes flawlessly.  Thank you!
1. CryptINI updated OK√
2. I tried to install bgracontrols.  It flagged the dependency OK√ and started the install, but compilation errored out, and OPM correctly offered to cancel OK√

GUI suggestions for future:
I find that what is missing in OPM is an 'UnInstall' button for (an) installed package(s). I know the IDE can do this, but OPM would look better for it.
It would be nice if, in the uncollapsed treeview, the 'Installed' column indicated 'Installed' (or not) for single packages. (some other text for partly-installed multi-packages like bgraBitmap)  It can be a bit of a fiddle expanding/collapsing the treeview all the time for simple info.

This project already exceeds early expectations..
Title: Re: Online Package Manager
Post by: balazsszekely on December 07, 2016, 10:26:34 am
Quote
re trunk: I'm reluctant to mess with my cross-compiling dev environment, unless you can suggest a way to upgrade to trunk in a simple way. (not fpcup)  I have the latest source of trunk - can it be patched in by simply merging with my existing setup somehow?
Since you're under windows, just download Tortoise SVN. To upgrade to trunk just press the "Update" button. Initially you have to do a SVN checkout though. This is why version control was introduced in the first place.

Quote
@GetMem: Just installed latest OPM and the updating goes flawlessly.  Thank you!
1. CryptINI updated OK√
2. I tried to install bgracontrols.  It flagged the dependency OK√ and started the install, but compilation errored out, and OPM correctly offered to cancel OK√
I'm glad it works. I need to fix a few bugs though.

Quote
I find that what is missing in OPM is an 'UnInstall' button for (an) installed package(s). I know the IDE can do this, but OPM would look better for it.
First of all there is no interface implemented yet for uninstalling packages, somebody has to do it first. Secondly OPM was not meant to replace all the functionality of "Install/Uninstall packages" dialog, just a quick way to (re)install your favorite packages.
Quote
It would be nice if, in the uncollapsed treeview, the 'Installed' column indicated 'Installed' (or not) for single packages. (some other text for partly-installed multi-packages like bgraBitmap)  It can be a bit of a fiddle expanding/collapsing the treeview all the time for simple info
Ok. This is a good idea. I will implement it today.
Title: Re: Online Package Manager
Post by: minesadorada on December 07, 2016, 11:02:03 am
Since you're under windows, just download Tortoise SVN. To upgrade to trunk just press the "Update" button. Initially you have to do a SVN checkout though. This is why version control was introduced in the first place.
A quick follow-up (I have Tortoise svn)
1. What is the best svn repository URL for trunk?
Title: Re: Online Package Manager
Post by: balazsszekely on December 07, 2016, 11:13:25 am
Quote
1. What is the best svn repository URL for trunk?
http://svn.freepascal.org/svn/lazarus/trunk
Title: Re: Online Package Manager
Post by: minesadorada on December 07, 2016, 01:04:43 pm
All good now.
JsonEditor to V0.1.18.0
- Compiled with Trunk (form.scaled=true)
- .po files are now bundled into the exe as resources and unpack on first run. 2 methods of packing them at compile time depending on Laz version.
  - Only the executable needs to be deployed, and it goes to any folder with write access
  - Bugfix from V0.1.17.0 - Linux locale creation fixed
- Updated Windows installer (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe))
Title: Re: Online Package Manager
Post by: minesadorada on December 07, 2016, 04:33:48 pm
@lainz I need an enormous favour.
When learning about i8n I committed the cardinal error of editing the .po files in Windows Notepad.  This messed up the .po files so they could no longer be edited in my BetterPo editor.  Lesson learned!

Since then, I have installed PoEdit, and rebuilt the jsoneditor.en.po and jsoneditor.es.po but using the machine translation to Spanish (which is less than ideal)

Now the .po files are correct, and POChecker also validates them.  I also found a way to include and unpack them as resources in Windows and Linux (which was a bonus)

The enormous favour is.. can you fix my awful Spanish translations in (attached) jsonedit.es.po just one last time please?   I would totally understand if you refused, as it was totally my fault your previous work was lost.  If it's any comfort, I've spent hours trying to fix my own mistake already.
Title: Re: Online Package Manager
Post by: lainz on December 07, 2016, 04:59:06 pm
Sure, I can translate that.

Edit: here it is. An awesome feature of Poedit is that it remembers the translations you did before, so I was just clicking on the already translated stuff I did before and it get's done in a few minutes. Of course there was new translations but these was easy too.

There is something not translated automatically and these are the headers of the TStringGrid. "lpk filename" and "version (n.n.n.n)". You maybe want to assign the translations by code.
Title: Re: Online Package Manager
Post by: minesadorada on December 07, 2016, 05:43:17 pm
Sure, I can translate that.

Edit: here it is. An awesome feature of Poedit is that it remembers the translations you did before, so I was just clicking on the already translated stuff I did before and it get's done in a few minutes. Of course there was new translations but these was easy too.

There is something not translated automatically and these are the headers of the TStringGrid. "lpk filename" and "version (n.n.n.n)". You maybe want to assign the translations by code.
@lainz  Thanks a million!
I feel suitably stupid for making unnecessary work for you.  I curse Bill Gates's stupid 'NotePad/SaveAs UTF8'!

In the meantime, I've learned a lot about Lazarus i8n deployment, including embedding .po files in the executable, using portable CFG files and and also using poedit and POChecker to ensure things are 'right' for deploying different languages with a runtime menu.

@all
Now I'm looking for German, French and Mandarin translations :)   Anyone?

If you are a package maintainer, I think jsoneditor is a good, user-friendly utility to make OPM-compliant update jsons.  How can I spread the word, now that I've put a disproportionate effort into making it?
Windows: https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe)
Title: Re: Online Package Manager
Post by: balazsszekely on December 07, 2016, 07:35:39 pm
Quote
@lainz
I hope you can talk with the lazarus developers (well, with the others, you are one of them now) and include this package as one of the pre-installed with Lazarus, so with that it will become more visible to all developers that open the package menu in the IDE, and more people will use it.
I don't think is possible since OPM depends on VirtualStringTree and third party components are not added to the pre-installed packages.

1. I implemented @minesadorada's request(screenshot)
Quote
It would be nice if, in the uncollapsed treeview, the 'Installed' column indicated 'Installed' (or not) for single packages. (some other text for partly-installed multi-packages like bgraBitmap)  It can be a bit of a fiddle expanding/collapsing the treeview all the time for simple info
2. The update is only visible if the package is installed. I hide it because a direct update, without install, although possible is not recommended. The update may fail if dependencies are not found.
3. Added Help button which points to OPM wikipage
4. Fixed a few bugs.

Please test(r 53591)!

We should add the LastNotifyDate(TDateTime) to the JSON + remove name.zip because it's not needed, just the name:
Quote
{
  "UpdatePackageData" : {
    "DownloadURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip",
    "ForceNotify" : false,
   "LastNotifyDate" : 4.2689000000000000E+004, <--add this
    "Name" : "cryptini"                         <--cryptini instead of cryptini.zip
  },
  "UpdatePackageFiles" : [
    {
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
Title: Re: Online Package Manager
Post by: lainz on December 07, 2016, 09:04:52 pm
@GetMem
Don't worry, maybe there's another way of making it popular. Do you have any kind of statistics of the downloads of each package? Or that need to be implemented in the server?
Title: Re: Online Package Manager
Post by: Rayvenhaus on December 07, 2016, 10:41:24 pm
Has this package moved? The link in the first message gives me a 404 error at github.
Title: Re: Online Package Manager
Post by: lainz on December 07, 2016, 10:51:55 pm
Yes it has been moved to Lazarus svn. See the wiki for the links.
http://wiki.freepascal.org/Online_Package_Manager
Title: Re: Online Package Manager
Post by: wp on December 08, 2016, 09:26:57 am
@GetMem: I am currently converting some more components of the jvcllaz project in ccr (JVCL components). For easier conversion I'll stick to the package structure of the JVCL Delphi version. This results in a multitude of packages which have to be compiled/installed in a given order.

How does OPM know the order in which packages must be compiled/installed?
Does OPM "know" that runtime packages only have to be compiled, while designtime packages must be installed?
Title: Re: Online Package Manager
Post by: balazsszekely on December 08, 2016, 09:57:07 am
@lainz
Quote
Don't worry, maybe there's another way of making it popular
I'm not worried at all. OPM it's just a tool, so nothing to worry about.

Quote
Do you have any kind of statistics of the downloads of each package? Or that need to be implemented in the server?
I have to ask @Marc. He maintains the server on which the repository is stored.

@wp
Quote
How does OPM know the order in which packages must be compiled/installed?
Recursively checks for dependencies both in central repository and  locally installed packages.  It will warn you before install if an unresolved dependency is found(see screenshot). The install order is decided up on the dependencies. If you are interested about the details, please check:
 - procedure GetPackageDependencies(unit opkman_serializablepackages)
 - procedure StartInstall(unit opkman_installer)

Quote
Does OPM "know" that runtime packages only have to be compiled, while designtime packages must be installed?
Yes. Runtime packages are only compiled, designtime packages compiled, installed then the IDE is rebuild.

I'm almost finished the update feature. After that I need a link to an external json file. When a new update is available, all you have to do is increase the version number and update the source zip.
Title: Re: Online Package Manager
Post by: wp on December 08, 2016, 09:59:38 am
Clever!
Title: Re: Online Package Manager
Post by: balazsszekely on December 08, 2016, 10:14:15 am
Quote
I am currently converting some more components of the jvcllaz project in ccr (JVCL components). For easier conversion I'll stick to the package structure of the JVCL Delphi version.
This is great! I always wondered why such a good component is not converted to Lazarus? Which version exactly are you converting? The newer one are more focused on XE2+ support.
Title: Re: Online Package Manager
Post by: minesadorada on December 08, 2016, 12:46:10 pm
1. I implemented @minesadorada's request(screenshot)
2. The update is only visible if the package is installed. I hide it because a direct update, without install, although possible is not recommended. The update may fail if dependencies are not found.
3. Added Help button which points to OPM wikipage
4. Fixed a few bugs.
Looks good.

We should add the LastNotifyDate(TDateTime) to the JSON + remove name.zip because it's not needed, just the name:
Quote
{
  "UpdatePackageData" : {
    "DownloadURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)",
    "ForceNotify" : false,
   "LastNotifyDate" : 4.2689000000000000E+004, <--add this
    "Name" : "cryptini"                         <--cryptini instead of cryptini.zip
  },
  "UpdatePackageFiles" : [
    {
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
I'd like to keep the '.zip' in if possible.  In jsoneditor it acts as a redundancy check on the URL - which is an easy field to get wrong.  If you think it's important, then I suppose the GUI could insist on the .zip but only store the name part in the json, but this would make it inconsistent for manual editing.

With the LastNotifyDate entry, I have a couple of issues:
1. What if I upload a json with LastNotifyDate set for 10 years from now? As I understand, OPM will keep polling the json but be unable to change the 'bad' entry.
2. With the date in TDateTime format (which it has to be), it becomes difficult and error-prone to manually edit the json file (which some users will do)

I assume what is wanted is really an 'expire-by' date (days).  If so, then it's probably better to store the current date (internally) and let the user specify a number of days for the NotifyUpdate to apply.  (The GUI can calculate and display the ExpiryDate for the user to confirm) This can be stored as a simple integer field.  If OPM can parse the filedate of the json, then it doesn't even need the problematical LastNotifyDate TDateTime field - only the ExpiryDays one.
Title: Re: Online Package Manager
Post by: balazsszekely on December 08, 2016, 01:50:22 pm
Quote
I'd like to keep the '.zip' in if possible.  In jsoneditor it acts as a redundancy check on the URL - which is an easy field to get wrong.  If you think it's important, then I suppose the GUI could insist on the .zip but only store the name part in the json, but this would make it inconsistent for manual editing.
The *.zip is not used internally by OPM, if it's useful for you then feel free to keep it.

Quote
With the LastNotifyDate entry, I have a couple of questions:
1. What if I upload a json with LastNotifyDate set for 10 years from now?
2. With the date in TDateTime format (which it has to be), it becomes difficult and error-prone to manually edit the json file (which some users will do)

I assume what is wanted is really an 'expire-by' date (days).  If so, then it's probably better to store the current date (internally) and let the user specify a number of days for the NotifyUpdate to apply.  This can be stored as a simple integer field.  If OPM can parse the filedate of the json, then it doesn't even need the problematical TDateTime field - only the ExpiryDays one.
First of all the "ForceNotify" feature will be rarely used, secondly we need a system that prevents continuous alert messages even when ForceNotify is set to true.  Consider this:
1. A package maintainer modifies the source, without increasing the version number(it's not unusual)
2. To trigger an alert message on the users computer, he/she sets ForceNotify to true(the other valid alert method is to increase the version number, which do not apply here)
3. OPM alerts the user, the package is downloaded/installed through the update feature
4. Now comes the confusing/annoying part, although the source is updated, the user will receive continuous alert messages since ForceNotify is true. To prevent this, I want to add a TDate/TDateTime field, which represents the date when the last update was released. After the update is done, OPM remembers internally the date, preventing further messages until the date changes again. We can replace the date with an integer, the effect would be the same. You're right about the TDate/TDatetime, it's very difficult to edit manually in the JSON file, however is more suggestive then an integer value, besides why did you developed the jsoneditor? To handle dates in the json  8). So what's gonna be: integer or date?
Title: Re: Online Package Manager
Post by: minesadorada on December 08, 2016, 02:24:27 pm
OK thanks for the explanation.  I'd made the wrong assumption that the user was setting the TDateTime.
Why can't OPM read the FileDate of the downloaded json and use that?  Am I missing something?
Title: Re: Online Package Manager
Post by: lainz on December 08, 2016, 02:27:03 pm
I think better is an integer. What for example I use is an integer with year-month-day, so today will be 20161208, tomorrow 20161209 and is easy to write. In the GUI editor just pick a date and then convert to this is really easy.

The time I don't know if it's neccessary, I think updating once a day is most that all users will do, more times in a day is not a good thing.

Edit: or just a regular int to increase. number of notify: 0, 1, 2, 3, 4, and so on.
Title: Re: Online Package Manager
Post by: balazsszekely on December 08, 2016, 03:15:19 pm
@minesadorada
Quote
Why can't OPM read the FileDate of the downloaded json and use that?  Am I missing something?
The JSON never "touch" the hard disk, it's loaded directly into a memory stream.

Quote
@lainz
Edit: or just a regular int to increase. number of notify: 0, 1, 2, 3, 4, and so on.
I like this better. What about a meaningful name? InternalVersion is ok?
Title: Re: Online Package Manager
Post by: lainz on December 08, 2016, 03:38:03 pm
InternalVersion is ok. The most important thing along with the name is the hint you can give to the package mantainer on what it does, and that is done in the wiki or in the json maker minesadorada keeps updating.
Title: Re: Online Package Manager
Post by: wp on December 08, 2016, 05:36:11 pm
Quote
I am currently converting some more components of the jvcllaz project in ccr (JVCL components). For easier conversion I'll stick to the package structure of the JVCL Delphi version.
This is great! I always wondered why such a good component is not converted to Lazarus? Which version exactly are you converting? The newer one are more focused on XE2+ support.
I am continuing with the version with which the initial porter started. Fortunately I found this in my archive, it is v 3.33, and I can install it in my Delphi 7 to see how things should work.

I was motivated by a bug report by Michał Gawrycki who converted the Validators and the HTcontrols (HT = hypertext) - this is really nice work done by him. I saw that the XPControls did not have a demo, and so I decided to continue with this package. XPControls are almost complete now, but this is more an exercise than an important addition since nobody cares about XP controls any more nowadays.

The currently ported components work in Windows and Linux. The JvNavigationPane still lacks the component editor for adding pages, i.e. you must use runtime code to add pages (like in the demo). 

I changed the folder structure in the ccr folder to facilitate adapting other JVCL components. And I also separated runtime and designtime code into separate packages. So, users of the JVCL components forgive me because this breaks your code - sorry. But it effectively avoids compilation issues due to the same compiled units found by several packages.

But conversion is quite a pain because numerous classes and units are involved before you can test a component on the component palette and because the code is heavily loaded with Windows-stuff. After being unsuccessful with the OfficeColorButton today after two days of work I don't know if I'll spend more time on this...
Title: Re: Online Package Manager
Post by: minesadorada on December 08, 2016, 07:16:54 pm
InternalVersion is ok. The most important thing along with the name is the hint you can give to the package mantainer on what it does, and that is done in the wiki or in the json maker minesadorada keeps updating.
So what is the consensus?  I can update jsoneditor on Sunday once I know:
1. Which new fields in the json
2. What can the GUI user visually change?
3. Validation rules for (2)
4. Hint text for (2)
Title: Re: Online Package Manager
Post by: lainz on December 08, 2016, 08:37:53 pm
Add InternalVersion that holds an arbitrary integer set by the package mantainer. Add a spin edit in the GUI. Is arbitrary, so there's no validation, only it must be an integer. The hint text is 'Increase internal version when you have made changes in the source. It  works only combined with ForceNotify.'
Title: Re: Online Package Manager
Post by: JuhaManninen on December 09, 2016, 12:10:55 am
HtmlViewer master project is ported to FPC/Lazarus.
 https://github.com/BerndGabriel/HtmlViewer
I realized this from a recent bug report:
 http://bugs.freepascal.org/view.php?id=31075
Should it be included in the repository? CCR only has an old version which maybe should be removed.
Title: Re: Online Package Manager
Post by: balazsszekely on December 09, 2016, 05:41:25 am
@wp
Quote
The currently ported components work in Windows and Linux.
After OPM is finished, I would like to contribute by porting those components to OSX. 

@minesadorada
See @lainz answer.

The update feature soon will be ready. The last missing, major feature is the voting system. Some of the reply on this thread suggest, that rating packages would be beneficial. What do you think about this?
My thoughts:
  - each package can have from 1 to 5 starts
  - a user can vote only once/package(we need a login system for this, it can be used later to directly update the main repository)
  - a vote can be later edited/modified
  - OPM will display an avarage for each package
Implementing the feaute will take time, since it's a complex issue.

PS: I will remove the SVN/GIT item from the tree, since the package maintainer now can push trunk version through the update feature.
 
Title: Re: Online Package Manager
Post by: molly on December 09, 2016, 06:06:03 am
Hi GetMem,

The voting as i envisioned it had more to do with the functionality of the package.

- does the package install correctly or are there any issues encountered
- does the package work/compile for specific targets or only for some of them
- is the package well maintained or does it take ages for reported bugs to be fixed
- etc.

The idea behind that, was that anyone can offer his/her package but users are able to provide information about the package so that good well written packages/components have perhaps a better chance to get integrated into ccr or similar (simply because they get noticed)

imho there is no use whatsoever to use a ranking system when all we get is response from those that are happy enough the package exist at all and support only one single platform (how well written it might be, and of course with exception of those that are only capable of targeting one platform).

It would also allow for newcomers to take a shot at things and get some positive feedback and packages might be able to get a classification (new, in development, official, etc)

Not a big issue if something like that would be missing but could perhaps help in getting things more automated on its own without too much human required interference when talking about OPM manager. It has nothing to do with the manager itself in that regards so, i was not complaining  :)

Thank you for the tremendous and excellent job already done.
Title: Re: Online Package Manager
Post by: minesadorada on December 09, 2016, 10:02:39 am
Add InternalVersion that holds an arbitrary integer set by the package mantainer. Add a spin edit in the GUI. Is arbitrary, so there's no validation, only it must be an integer. The hint text is 'Increase internal version when you have made changes in the source. It  works only combined with ForceNotify.'
I found an hour to do this this morning.
jsoneditor to V0.1.19.0 in svn ccr
Windows installer at https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe/download
Please check.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 09, 2016, 11:11:39 am
The last missing, major feature is the voting system. Some of the reply on this thread suggest, that rating packages would be beneficial. What do you think about this?
My thoughts:
  - each package can have from 1 to 5 starts
  - a user can vote only once/package(we need a login system for this, it can be used later to directly update the main repository)
1 to 5 stars I guess. Sounds good.
Earlier you wrote that this forum user account could be used for authentication. Is it still the plan?
In any case you must discuss with the server admin about this SW and its needs.

Quote
  - a vote can be later edited/modified
  - OPM will display an avarage for each package
A good point, a user must be able to change his vote as the package improves or his opinion changes.
The average must show decimal stars.

- does the package install correctly or are there any issues encountered
- does the package work/compile for specific targets or only for some of them
- is the package well maintained or does it take ages for reported bugs to be fixed
- etc.

The idea behind that, was that anyone can offer his/her package but users are able to provide information about the package so that good well written packages/components have perhaps a better chance to get integrated into ccr or similar (simply because they get noticed)
A comment, together with the rating, should be supported. There a user can explain his reasoning.
No, packages don't need to be "integrated into ccr". CCR is just one hosting place among others.
Through voting/rating a new user gets an idea of a package's quality. Other classification like supported platforms is already done by its author.
Remember, a package can be single-platform by definition, for example some MS Office OLE-automation package.
Title: Re: Online Package Manager
Post by: minesadorada on December 09, 2016, 11:32:02 am
It would be useful if awarding stars meant the same thing for everyone:
i.e.
1 = Unuseable. Buggy and/or obselete
2 = Compiles/Installs, but has many unfixed bugs
3 = OK, but poor support for fixes and/or updates
4 = OK, but unsuitable for production
5 = Perfection!
Title: Re: Online Package Manager
Post by: molly on December 09, 2016, 12:16:06 pm
Remember, a package can be single-platform by definition, for example some MS Office OLE-automation package.
Of course. I tried to cover that in my writings but apparently that didn't came across as such   :-[
Title: Re: Online Package Manager
Post by: lainz on December 09, 2016, 01:06:20 pm
Hi GetMem, I've updated the external json of bgracontrols and bgracontrolsfx with the changes minesadorada made to the editor (InternalVersion).
Title: Re: Online Package Manager
Post by: minesadorada on December 09, 2016, 02:49:18 pm
Hi GetMem, I've updated the external json of bgracontrols and bgracontrolsfx with the changes minesadorada made to the editor (InternalVersion).
Update CryptINI jsons also updated (including cryptini_force.json, with InternalVersion > 1)
Title: Re: Online Package Manager
Post by: Rayvenhaus on December 09, 2016, 04:44:33 pm
I'm curious. Why does the Online Package Manager show me that a version is out of date, but says that it is up to date?  As shown in the attached image, it shows me that bgrabitmappack, Installed Version is 9.2.1.0 and the repository version is 9.2.3.0, yet states that the package is up to date.

Title: Re: Online Package Manager
Post by: balazsszekely on December 09, 2016, 04:59:39 pm
@All
Thanks for the feedback. I will try two answer as soon as possible.

@Rayvenhaus
It's a bug. I will fix it soon.
Title: Re: Online Package Manager
Post by: minesadorada on December 10, 2016, 09:58:43 am
Added a Linux distribution to the compiled OPM Update jsonpackager (V0.1.19):

Zipfile of 32bit + 64-bit Linux versions
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/linux_jsonpackager.zip/download (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/linux_jsonpackager.zip/download)

Windows 32/64-bit setup
https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe/download (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe/download)

Only the executable is needed and it can be located in any writable directory as all resources are bundled within.
Title: Re: Online Package Manager
Post by: minesadorada on December 10, 2016, 11:09:27 am
@GetMem - a suggestion

As part of the update/maintenance mechanism I'd like an extra field to temporarily disable users downloading the component (or better still make it invisible in OPM) Perhaps DisableInOPM=True/False? (default=false)

There's an entirely selfish reason for this, though I suspect the same situation may happen to other package maintainers in the future.

I have a component (LazAutoUpdate) that has become dysfunctional due to updated SourceForge download protocols, and another (PoweredBy) that has been adversely affected by recent changes to Lazarus trunk.

I'd like to update them both, but don't want users to download the 'old' versions until they are fixed, so in my update json I'd like to set DisableInOPM=True whilst I change and test them.  Once stable, I can set DisableInOPM=False and the component once again becomes available for users.

I think this would be a useful addition to the update spec - especially if a voting system is implemented, whereby an unfixed component could possibly be voted down whilst the maintainer is in the process of fixing it.

Is this possible?
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2016, 04:37:48 pm
First of all sorry for the delay, I was very busy lately. I just commited the latest version of OPM, I believe the update feature now is fully functional(may contain a few bug though). I had to change the structure of the JSON one more time, but this is the last change(I promise). You can generate the JSON with OPM(see screenshot). The structure looks like this:
Quote
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "",
    "Name" : "bgracontrols-master"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : true,
      "InternalVersion" : 1,
      "Name" : "bgracontrols.lpk",
      "Version" : "4.3.1.0"
    },
    {
      "ForceNotify" : true,
      "InternalVersion" : 1,
      "Name" : "bgrapascalscriptcomponent.lpk",
      "Version" : "0.0.0.0"
    }
  ]
}
It make sense that each package has it's own ForceNotify, maybe the package maintainers only wants to update one of them not both.

@minesadorada
Please update your project, if you don't have time I will do it later. Again sorry for the inconvenience. Please also regenerate the json's for all your packages and send me links. Thanks.
Quote
As part of the update/maintenance mechanism I'd like an extra field to temporarily disable users downloading the component (or better still make it invisible in OPM) Perhaps DisableInOPM=True/False? (default=false)
Just rename the JSON temporary, OPM will reset every update data, like there is no update. I tested this a few times, works well.

@lainz
Please do the same for all your packages. I will update the main json today, so we can run a few tests. Thanks.

@Rayvenhaus
I fixed the bug. Please update to the latest version.
Title: Re: Online Package Manager
Post by: lainz on December 10, 2016, 04:59:16 pm
I updated both bgracontrols and bgracontrolsfx but seems that doesn't works "No valid download link found". You already implemented that? Also I'm not sure if the link must be like
Quote
https:\/\/github.com\/bgrabitmap\/bgracontrols\/archive\/master.zip
or like
Quote
https://github.com/bgrabitmap/bgracontrols/archive/master.zip
Title: Re: Online Package Manager
Post by: LuizAmérico on December 10, 2016, 05:07:25 pm
Quote
Also I'm not sure if the link must be like

Both are right see discussion: http://bugs.freepascal.org/view.php?id=30870
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2016, 06:30:12 pm
As @Luiz said both are valid. I choosed the second one, because it's more easy to edit with a text editor. Let me check what is wrong.
Title: Re: Online Package Manager
Post by: lainz on December 10, 2016, 07:13:56 pm
As @Luiz said both are valid. I choosed the second one, because it's more easy to edit with a text editor. Let me check what is wrong.

Done, I've changed it to the second style. Maybe related with HTTPS? There's no need of dll's to download from secure sites?

Edit: can't be https, because it says is a problem in the URL, also it downloads the json, else it will not know that there's a new version. BTW I keep the second question, wich package you use to download from secure sites with no need of extra dll's?
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2016, 07:44:18 pm
It was a stupid mistake of mine. I left a "/" in a wrong please. I spent half an hour debugging the code.  :-[
Anyway please update to trunk then try again. Wait 1-2 min. until the url's are updated with the correct values. You can also delete the config file for updates, just to make sure:
   C:\Users\%user%\AppData\Local\lazarus\onlinepackagemanager\config\updates.xml
After the update is done, please increment the InternalVersion value, then test if OPM displays the "NEW" value.

PS: I did noticed that sometimes files on github cannot be downloaded. FPHTTPClient returns an error, but if I try to download again everything works fine. This has nothing to do with the above issue, which was clearly a bug.
Title: Re: Online Package Manager
Post by: lainz on December 10, 2016, 07:48:58 pm
I must wait to be synchronized with the lazarus trunk on GitHub first to test.

About the download from GitHub, I've noticed that also.

So you're using only FPHTTPClient for secure downloads? That doesn't need some dll's in the executable folder to work?

Edit: tested and working well.
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2016, 08:23:43 pm
Quote
So you're using only FPHTTPClient for secure downloads? That doesn't need some dll's in the executable folder to work?
The main repository is http, so we only need the OpenSSL library for external updates. Under windows I have copied the files into the system32 directory. Under linux/osx everything works fine, probably *.so, *.dylib files are preinstalled.

I will add the info to the wiki. Anyway no matter what component we use(indy, synapse,  FPHTTPClient) for https those libraries are needed anyways.
Title: Re: Online Package Manager
Post by: lainz on December 10, 2016, 08:42:26 pm
That's ok.

I was asking because I though that I don't have these dll's installed. The reality is that I have a lot of them (doing a search with windows search was not enough, I downloaded voidtools everything search tool to find them), maybe some are in PATH folders, I have these dll's in software like Git, fpcupdeluxe, photoshop, easeus partition master, foxit reader, intel stuff, graphic tablet stuff, and some other applications.

What a problem, I don't even know wich version is running when I use your tool. That's the called 'dll hell' or something like that  :D
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2016, 09:39:33 pm
Quote
What a problem, I don't even know wich version is running when I use your tool. That's the called 'dll hell' or something like that  :D
Yeah!  :D  Good you mentioned though, because I already forget it. Perhaps we should store those dll's on the main repository and download when needed.
Title: Re: Online Package Manager
Post by: lainz on December 10, 2016, 10:16:41 pm
Is something like Fpcupdeluxe does, it downloads the dll's and place in them in the right folder.

The main problem is that the lazarus folder is not always writable?

Edit: I attach some of the NetBeans Plugins window, something like the OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 11:31:05 am
@lainz
Quote
Is something like Fpcupdeluxe does, it downloads the dll's and place in them in the right folder.
The main problem is that the lazarus folder is not always writable?
When you install a component, Lazarus must rebuild itself so the folder is always writable(at least it shoud be). I added ssl support in r53631. Yet another directory with the same dll's.  :D Perhaps is redundant for us, but for those who don't have any ssl library installed is mandatory, without the dlls OPM would crash on update.
I also fixed that strange download error(github), since then I never saw the "range check"/"chunk to big"  errors, although I downloaded the zip files more then 20 times. Please test.

Quote
Edit: I attach some of the NetBeans Plugins window, something like the OPM.
Looks great and gives me some ideas about the interface. For example I check for updates in every 6 sec. It's too often, perhaps once/day is more then enough.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 12:35:01 pm
It make sense that each package has it's own ForceNotify, maybe the package maintainers only wants to update one of them not both.

@minesadorada
Please update your project, if you don't have time I will do it later. Again sorry for the inconvenience. Please also regenerate the json's for all your packages and send me links. Thanks.
NP. I'll get on it.

Quote
As part of the update/maintenance mechanism I'd like an extra field to temporarily disable users downloading the component (or better still make it invisible in OPM) Perhaps DisableInOPM=True/False? (default=false)
Just rename the JSON temporary, OPM will reset every update data, like there is no update. I tested this a few times, works well.
That would just affect whether an update is shown.  I was talking about temporarily changing the visibility of the component itself in OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 01:00:29 pm
@minesadorada
Quote
NP. I'll get on it.
Thank you!  :)

Quote
That would just affect whether an update is shown.  I was talking about temporarily changing the visibility of the component itself in OPM.
I can do it(in fact all I have to do is set the node visibility to false) but is confusing for the user. From the users point of view a package appears/disappears randomly, without any explanation. It looks like a bug. Are you sure this is what we want?
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 01:12:16 pm
Quote
That would just affect whether an update is shown.  I was talking about temporarily changing the visibility of the component itself in OPM.
I can do it(in fact all I have to do is set the node visibility to false) but is confusing for the user. From the users point of view a package appears/disappears randomly, without any explanation. It looks like a bug. Are you sure this is what we want?
It would be an unusual and exceptional circumstance (which I explained in the OP) so the user won't see components appearing/disappearing randomly on a regular basis, or even occasionally.  But I do think it's a feature that could be important to a package maintainer for the reasons I gave.  If a serious bug is found in an OPM package (or external factors render it obselete)  do you think it's a good idea for users to keep downloading it whilst the maintainer fixes it?
I don't think it's an update feature that would be used often (like ForceNotify), but can we build it into the spec anyway?
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 01:22:34 pm
Quote
I don't think it's an update feature that would be used often (like ForceNotify), but can we build it into the spec anyway?
Ok. Please add it to your project JSON structure, I will add it to OPM:
Quote
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "",
    "DisableInOPM" : false,
    "Name" : "bgrabitmap-master"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "bglcontrols.lpk",
      "Version" : "1.1.0.0"
    },
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "bgrabitmappack.lpk",
      "Version" : "9.2.3.0"
    }
  ]
}
I will implement the functionality soon(in worst case tomorrow).
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 01:41:02 pm
@Getmem Thanks for the addition.  Redesigning the GUI for the new per-lpk structure is a bit fiddly - I'll refactor it I think.
Here are the Package Objects
Code: Pascal  [Select][+][-]
  1.   { TUpdatePackageFiles }
  2.  
  3.   TUpdatePackageFiles = class(TCollectionItem)
  4.   private
  5.     FName: string;
  6.     FVersion: string;
  7.     FForceNotify: boolean;
  8.     FInternalVersion: integer;
  9.   published
  10.     property Name: string read FName write FName;
  11.     property Version: string read FVersion write FVersion;
  12.     property ForceNotify: boolean read FForceNotify write FForceNotify;
  13.     property InternalVersion: integer read FInternalVersion write FInternalVersion;
  14.   end;
  15.  
  16.   TPackageFilesList = specialize TGenericCollection<TUpdatePackageFiles>;
  17.  
  18.   { TUpdatePackageData }
  19.  
  20.   TUpdatePackageData = class(TPersistent)
  21.   private
  22.     FDownloadZipURL: string;
  23.     FDisableInOPM: Boolean;
  24.     FName: string;
  25.   public
  26.     constructor Create;
  27.   published
  28.     property Name: string read FName write FName;
  29.     property DownloadZipURL: string read FDownloadZipURL write FDownloadZipURL;
  30.     property DisableInOPM:Boolean read FDisableInOPM write FDisableInOPM;
  31.   end;
  32.  
  33.   { TUpdatePackage }
  34.  
  35.   TUpdatePackage = class(TPersistent)
  36.   private
  37.     FUpdatePackageData: TUpdatePackageData;
  38.     FUpdatePackageFiles: TPackageFilesList;
  39.   public
  40.     constructor Create;
  41.     destructor Destroy; override;
  42.     function LoadFromFile(AFileName: string): boolean;
  43.     function SaveToFile(AFileName: string): boolean;
  44.   published
  45.     property UpdatePackageData: TUpdatePackageData
  46.       read FUpdatePackageData write FUpdatePackageData;
  47.     property UpdatePackageFiles: TPackageFilesList
  48.       read FUpdatePackageFiles write FUpdatePackageFiles;
  49.   end;
  50.  

Meanwhile I'll manually update the cryptini, cryptini_force jsons to the new format.  Also I'll make a update_lazautoupdate.json to test the DisableInOPM member (no rush!)

=edit= update_cryptini.json and update_cryptini_force.json both uploaded in new format (incl. DisableInOPM=false)
Title: Re: Online Package Manager
Post by: JuhaManninen on December 11, 2016, 02:25:27 pm
I can do it(in fact all I have to do is set the node visibility to false) but is confusing for the user. From the users point of view a package appears/disappears randomly, without any explanation. It looks like a bug. Are you sure this is what we want?
If this is really needed then at least don't hide the package but mark it clearly as disabled by its author.
Make its text font grey or use other colors to make it distinctive. Otherwise we will get bug reports and for a reason as it would be a confusing feature.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 02:41:40 pm
I can do it(in fact all I have to do is set the node visibility to false) but is confusing for the user. From the users point of view a package appears/disappears randomly, without any explanation. It looks like a bug. Are you sure this is what we want?
If this is really needed then at least don't hide the package but mark it clearly as disabled by its author.
Make its text font grey or use other colors to make it distinctive. Otherwise we will get bug reports and for a reason as it would be a confusing feature.

OK.  That suggestion makes sense - as long as the download/install functionality is disabled.
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 04:57:41 pm
@Juha
Quote
If this is really needed then at least don't hide the package but mark it clearly as disabled by its author.
Make its text font grey or use other colors to make it distinctive. Otherwise we will get bug reports and for a reason as it would be a confusing feature.
Good idea! I must add the info to the wiki. OPM now has a help button, when pressed the wiki page opens.

@minesadorada
Please try to increase the version number(cryptini) in the json to trigger a message alert.
Title: Re: Online Package Manager
Post by: Rayvenhaus on December 11, 2016, 05:16:33 pm
I see that the repository states that there is an update to the AutoUpdate component, yet I get the error shown in the attached image when I try to update. I'm also getting it on some other components shown in the OPM.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 05:24:23 pm
@minesadorada
Please try to increase the version number(cryptini) in the json to trigger a message alert.
I'm not sure if you mean Version or InternalVersion. Just attach the cryptini jsons you want for testing, and I'll upload them.
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 05:26:38 pm
@Rayvenhaus
To install a package from repository use the "Install" button.
To update an already installed package from the package maintainers webpage, use the update button.

It may sound a little bit confusing, but in the beginning there only was a "Repository" column and the "Install" button. To allow more freedom for the package maintainers, later the update feature was added("Update" button and "Update" column). By modifying an external JSON file, the package maintainers can trigger an alert/update message, and give the user the possibility to update to the latest version directly from external site(no central repository involved). Soon I will add all the info to the wiki:
http://wiki.freepascal.org/Online_Package_Manager
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 05:31:27 pm
@minesadorada
Quote
I'm not sure if you mean Version or InternalVersion. Just attach the cryptini jsons you want for testing, and I'll upload them.
Internal version must be used in combination with ForceNotify. We all agreed, that you don't like the forcenotify option and is set to false(cryptini). The other valid trigger method is to increase the version number. So please increase it in your json file and watch OPM for the new message(this is for testing purposes, you don't have to update to the new version). Alternatively leave the version as it is and set forcenotify to true. You should also see a message. In fact please try both methods.
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 06:17:29 pm
@minesadorada
Implemented the feature you requested in r53637. It looks like this(see screenshot), just set DisableInOPM to true.
Quote
If this is really needed then at least don't hide the package but mark it clearly as disabled by its author.
Make its text font grey or use other colors to make it distinctive. Otherwise we will get bug reports and for a reason as it would be a confusing feature.

Please test.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 06:23:04 pm
Uploaded this json:
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)",
    "DisableInOPM" : false,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.2.0"
    }
  ]
}

1. Updated OPM from trunk Rev 53636
2. Compiled/Installed in Laz Trunk
3. Started OPM
4. CryptINI version reported as 0.1.1.0 (correct)
*5. Waited awhile
6. CryptIni Update column correctly shows 'New' and 0.1.2.0 'New Updates available'

Uploaded this json:
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)",
    "DisableInOPM" : false,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : true,
      "InternalVersion" : 2,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
}

3. Started OPM
4. CryptINI version reported as 0.1.1.0 (correct)
*5. Waited awhile (a couple of minutes)
6. CryptIni Update column correctly shows 'New' and 0.1.1.0 'New Updates available'

..So all looking good.

*An obscure bug:  After uploading, starting OPM and before step (5) if I clicked 'Refresh' OPM locked up at 'Parsing JSON' forcing a restart of Lazarus. Once the new info was showing, 'Refresh' works without problems.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 06:34:31 pm
Uploaded this JSON:
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)",
    "DisableInOPM" : true,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
}

CryptINI column shows Version at 0.1.1.0 and Stratus as 'Up to date'  but not greyed out.

Uploaded this JSON:
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)",
    "DisableInOPM" : true,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : true,
      "InternalVersion" : 1,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
}
Same result: CryptINI column shows Version at 0.1.1.0 and Update column as 'New'  but.. not greyed out.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 06:47:32 pm
This is the version currently uploaded for your testing.
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip",
    "DisableInOPM" : true,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
}
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 07:29:21 pm
@minesadorada
Quote
Same result: CryptINI column shows Version at 0.1.1.0 and Update column as 'New'  but.. not greyed out.
The JSON looks ok, you probably did not update to the latest trunk.

Quote
*An obscure bug:  After uploading, starting OPM and before step (5) if I clicked 'Refresh' OPM locked up at 'Parsing JSON' forcing a restart of Lazarus. Once the new info was showing, 'Refresh' works without problems.
I fixed this in r. 53640.

Please update again to the latest version and test(both the refresh bug, and DisableInOPM). Thank you!
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 07:41:27 pm
If you could update the build number of OPM it would save me some double-checking.
Here is the situation as is:
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 08:11:36 pm
You're right! I forget to commit something. Please try one more time: r. 53641
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 08:15:12 pm
You're right! I forget to commit something. Please try one more time: r. 53641

All good now.   I'll upload with "DisableInOPM" : false and see if it comes back.
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 08:29:16 pm
That's really odd.  I expected it to return to normal.

Here's the uploaded json and the result after 15 minutes and 'Refresh'.  Does it show the same for you?
BTW I appreciate the effort you're putting into this.  I had a quick look at the code and can see it's not a trivial change.
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip)",
    "DisableInOPM" : false,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
}
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 08:36:58 pm
Just double click the link(see image), the json is still:
Quote
{
  "UpdatePackageData" : {
    "DownloadZipURL" : "https://sourceforge.net/projects/lazautoupdate/files/otherpackages/cryptini.zip",
    "DisableInOPM" : true,
    "Name" : "cryptini.zip"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "cryptini.lpk",
      "Version" : "0.1.1.0"
    }
  ]
}
Title: Re: Online Package Manager
Post by: minesadorada on December 11, 2016, 08:52:29 pm
It had to be something simple!  I'd uploaded the latest update_cryptini.json to the parent folder by mistake.

All good now.  Thanks!
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 09:01:20 pm
I'm glad it works. Please see opkman_updates.pas unit for the changes in JSON.
Title: Re: Online Package Manager
Post by: lainz on December 11, 2016, 09:34:58 pm
There's a new version of bgrabitmap 9.3 that you can update in the repository. I tell circular about the external json but I did not receive a response from him.

I think I will use it as is:
- If I do a new version I will disable the ForceNotify and just increase the Version
- If I do some new commits with fixes I will enable the ForceNotify and increase the InternalVersion

A thing I see:
- When you install for the first time is not allowed to download directly from the updates button.
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2016, 10:06:12 pm
Quote
There's a new version of bgrabitmap 9.3 that you can update in the repository. I tell circular about the external json but I did not receive a response from him.
Ok. I will do it tomorrow(It's late now here).

Quote
I think I will use it as is:
- If I do a new version I will disable the ForceNotify and just increase the Version
- If I do some new commits with fixes I will enable the ForceNotify and increase the InternalVersion
This is correct! Please note: even when you set ForceNotify to false, don't decrease/reset the InternalVersion , because it's remembered locally by OPM, so when you enable again ForceNotify, the internal version from the external json must be greater then the local version(to trigger an update alert).

Quote
A thing I see:
- When you install for the first time is not allowed to download directly from the updates button.
You're right again. In order to update you must install the package first. I made this restriction to prevent unresolved dependencies error. For example, if you try to update bgracontrols directly from the external link and bgrabitmap is not installed the update will fail. After the package is installed you can update any time, if not then it's a bug.

PS: Please try to update a few times, because I believe I fixed that strange download/update bug(github). Can you reproduce it, with the latest trunk?
PS1: How often do you think OPM should scan for updates? Every few second, once per day?
Title: Re: Online Package Manager
Post by: lainz on December 11, 2016, 10:16:31 pm
Ok. I got it.

I can't reproduce the github bug, I've installed the packages several times with no problems.

Maybe just once a day is enough.

Edit: How you fixed the github bug? I need to fix it to for some of my applications that auto-updates from GitHub.
Title: Re: Online Package Manager
Post by: minesadorada on December 12, 2016, 09:22:59 am
Today I did a genuine update to CryptINI, and uploaded the update json and Zipfile

OPM soon notified the Update as New and showed the update version correctly.  I clicked 'Update' and the update downloaded and installed.  All good.

A minor niggle: In the updated lpk, I had altered the description field to describe an updated feature, but after the update OPM still shows the 'old' description.  Is this intended behaviour?
An update should update lpk Description and especially License fields (untested by me) in OPM - a developer may change the license conditions in an update which is important.
Title: Re: Online Package Manager
Post by: balazsszekely on December 12, 2016, 12:17:11 pm
@lainz
Quote
Edit: How you fixed the github bug? I need to fix it to for some of my applications that auto-updates from GitHub.
TFPHTTPClient sometimes raise an exception even when the operation was successful. You should catch the exception first, then check if the ResponseStatusCode differs or not from 200(OK). If it's 200, just ignore the exception and continue.

I updated BGRABitmaps to 9.3.

@minesadorada
Quote
A minor niggle: In the updated lpk, I had altered the description field to describe an updated feature, but after the update OPM still shows the 'old' description.  Is this intended behaviour?
An update should update lpk Description and especially License fields (untested by me) in OPM - a developer may change the license conditions in an update which is important.
The package description is stored on the main repository(the main JSON). After update OPM still reads the description/license from the main repository not from the updated lpk. This feature must be implemented.
Title: Re: Online Package Manager
Post by: minesadorada on December 12, 2016, 12:21:03 pm
The package description is stored on the main repository(the main JSON). After update OPM still reads the description/license from the main repository not from the updated lpk. This feature must be implemented.
OK. Let me know when it's implemented and I'll do a ForceNotify update for cryptini.

Refactoring jsoneditor to use Control Arrays for each lpk file. A learning experience that will take a couple of days to implement.  Using anchor properties for dynamically-created controls is the new learning experience.
Title: Re: Online Package Manager
Post by: balazsszekely on December 12, 2016, 02:19:37 pm
Quote
OK. Let me know when it's implemented and I'll do a ForceNotify update for cryptini.
Implemented in r. 53650. You don't have to use ForceNotify for this. OPM will automatically read the package info(license/description) from lpk, after an update/install.

Title: Re: Online Package Manager
Post by: minesadorada on December 12, 2016, 02:25:07 pm
Quote
OK. Let me know when it's implemented and I'll do a ForceNotify update for cryptini.
Implemented in r. 53650. You don't have to use ForceNotify for this. OPM will automatically read the package info(license/description) from lpk, after an update/install.


Wow - impressive.
Checks out 100% - well done and thanks!

Just a reminder - please update VersionInfo in the OnlinePackager lpk file.  It makes it much easier to test.
Title: Re: Online Package Manager
Post by: balazsszekely on December 12, 2016, 02:37:05 pm
@all,

I updated the wikipage(http://wiki.freepascal.org/Online_Package_Manager):
  - new information about the update feature: how to create the external JSON,  the meaning of each item in the JSON, etc...
  - what is the difference between download/install/update(see screenshot). A lot of people don't understand the subtle difference between download/install/update and for good reason: OPM is a hybrid between a central repository and external updates. There was a a lot of discussion about this subject and currently this is the most reasonable solution we came up with(it might be confusing though). I did my best to explain it in the picture. Please suggest new names, design improvements to make it more clear.

 
Title: Re: Online Package Manager
Post by: minesadorada on December 12, 2016, 02:41:34 pm
Perhaps a link to my GUI app when it's finished?
It's guaranteed to produce a usable update_json file that will be compatible with OPM.

I can update the wiki with information as I understand it, if that's OK.  Things can look very different between a developer and a user sometimes.
Title: Re: Online Package Manager
Post by: Rayvenhaus on December 12, 2016, 03:17:54 pm
When I look at the Package info on a control in the OPM, I can see a like to the controls homepage. Since I can not highlight and copy that link to go to the homepage, can the link be made to launch the default browser?
Title: Re: Online Package Manager
Post by: minesadorada on December 12, 2016, 03:32:29 pm
This looks like a regression.  It used to work as a live link.
Title: Re: Online Package Manager
Post by: balazsszekely on December 12, 2016, 04:04:42 pm
@Rayvenhaus
Just move the mouse over link: http://www.cityinthesky.co.uk...., the color should change to blue then double click it. If another behavior would be more logical...I'm open to suggestions.
Title: Re: Online Package Manager
Post by: Rayvenhaus on December 12, 2016, 04:21:13 pm
It's working as designed. I thought I was double-clicking, but apparently not. Thank you for the quick reply!
Title: Re: Online Package Manager
Post by: minesadorada on December 12, 2016, 04:35:06 pm
@Rayvenhaus
Just move the mouse over link: http://www.cityinthesky.co.uk (http://www.cityinthesky.co.uk)...., the color should change to blue then double click it. If another behavior would be more logical...I'm open to suggestions.
Suggestion: Single-click?  Most linux users would expect it, and Windows users just get 2 instances of the browser if they double-click :)   I was fooled.
Title: Re: Online Package Manager
Post by: balazsszekely on December 12, 2016, 05:17:39 pm
@minesadorada
Quote
Perhaps a link to my GUI app when it's finished?
It's guaranteed to produce a usable update_json file that will be compatible with OPM.
I can update the wiki with information as I understand it, if that's OK.
Yes, the link to your project its a must. I will add it when you're ready. In fact you can edit anytime you like. All you need is wiki account or perhaps you already have one? 

Quote
Things can look very different between a developer and a user sometimes.
True.

Quote
Suggestion: Single-click?
With single click you select the current row. Every selection would open a new browser window. Not good.  :D
Title: Re: Online Package Manager
Post by: minesadorada on December 13, 2016, 01:54:08 pm
Functional alpha of jsoneditor V0.2.0.0 available in svn ccr and
Windows InnSetup: https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe/download (https://sourceforge.net/projects/lazautoupdate/files/otherpackages/setup_jsoneditor.exe/download)

By 'functional', I mean New, Load and Save/Save As work, but the tooltips, validation and translation are unfinished. (It had a GUI makeover)
I might be useful for testing update_.json files in its current state.
Title: Re: Online Package Manager
Post by: balazsszekely on December 13, 2016, 02:30:48 pm
@minesadorada
You cannot increase the height of the form with every single packagefile added. You need a scrollbox instead(see attachment).
Even better, you should drop the whole TGroupBox array, all the info is already stored in JSONPackage(TUpdatePackage) class. On form show loop through the JSONPackage and add all items to a TListView(4/5 columns). When you want to edit one of the item, just open a new form and display the selected items info. After the form is closed, save data back to JSONPackage and update the tree.
Title: Re: Online Package Manager
Post by: minesadorada on December 13, 2016, 02:43:57 pm
@GetMem  I agree, a better design with the scrollbox.  I like the control arrays, but if its a big problem for you I can redesign.  Most components will only have 1 or 2 packages.

I'll revisit later - off to golf now :)
Title: Re: Online Package Manager
Post by: balazsszekely on December 13, 2016, 02:46:28 pm
Quote
I like the control arrays, but if its a big problem for you I can redesign.  Most components will only have 1 or 2 packages.
No problem at all. Feel free to keep it.
Title: Re: Online Package Manager
Post by: lainz on December 14, 2016, 04:02:44 pm
Here is attached the latest translation for the json editor.
Title: Re: Online Package Manager
Post by: minesadorada on December 14, 2016, 04:18:39 pm
Here is attached the latest translation for the json editor.
Looks great - thanks!
Title: Re: Online Package Manager
Post by: Josh on December 15, 2016, 03:55:16 pm
Hi
I have tried to install KControld on osx and it fails to compile
kfunctions.pas(1489,23) Error Incompatible types: got TThreadID expected Longword
kfunctions.pas(2307,30) Error Incompatible types: got LongWord expected TThreadID

Is this just a osx issue of does kcontrols not compile on win/nix as well.

Title: Re: Online Package Manager
Post by: JuhaManninen on December 15, 2016, 04:51:51 pm
I have tried to install KControld on osx and it fails to compile
kfunctions.pas(1489,23) Error Incompatible types: got TThreadID expected Longword
kfunctions.pas(2307,30) Error Incompatible types: got LongWord expected TThreadID

Is this just a osx issue of does kcontrols not compile on win/nix as well.
It compiles fine on Linux.
Anyway kfunctions.pas uses wrong types. "TThreadID" should be used consistently when a Thread ID is needed.
See how TThreadID is defined in rtl/macos/sysosh.inc:
Code: Pascal  [Select][+][-]
  1. type
  2. {$ifdef CPU64}
  3.   THandle = Int64;  
  4. {$else CPU64}
  5.   THandle = Longint;
  6. {$endif CPU64}
  7.   TThreadID = THandle;

On Linux it is:
Code: Pascal  [Select][+][-]
  1. TThreadID = PtrUInt;

Please create a patch for the original project.

GetMem, do all package maintainers know their packages are available from OPM and that they should provide new versions?
Title: Re: Online Package Manager
Post by: balazsszekely on December 15, 2016, 05:44:26 pm
Quote
GetMem, do all package maintainers know their packages are available from OPM and that they should provide new versions?
No. At least third of the packages don't have a maintainer, some of the packages are maintained but the authors don't visit this forum. When I add a package to the main repository, I always check if it compiles under windows. However checking for every single platform would be a tremendous task(I cannot do this alone).
If somebody notice that a particular packages is not compiling, I can modify the supported widget set entry, or perhaps that person can fix the package.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 15, 2016, 08:27:04 pm
No. At least third of the packages don't have a maintainer, some of the packages are maintained but the authors don't visit this forum.
For packages that have a maintainer, this package manager should be advertised.
If a maintainer does not take care of updates then this system will be outdated in future.
Everybody should now advertise this online package manager to his favorite package's author.
Title: Re: Online Package Manager
Post by: balazsszekely on December 16, 2016, 10:44:14 am
Quote
@Juha
For packages that have a maintainer, this package manager should be advertised.
For approximately 10 out of 41 packages the update system is up and running(the external JSON we talked about in previous posts). Later hopefully more package maintainer will join in.

I implemented voting system partially(r. 53697), for now it only works locally. Please test!
What will be on server side, is not yet decided, at least not entirely(database server, etc). Communication between a desktop application(Lazarus/OPM) and a remote database is not safe, unless another layer of security is added. It can be done through a php server or free pascal based fastcgi. The second one would be a nice show case for free pascal, but is more difficult to implement. Somebody has experience with fastcgi? I can do the implementation with php.

Screenshot for the voting system(OSX, Linux, Windows):
Title: Re: Online Package Manager
Post by: Josh on December 16, 2016, 11:13:44 am
Hi JuhaManninen,

Thanks for looking into the issue.

What would I need to change to get kcontrols to compile and run on  osx?
Title: Re: Online Package Manager
Post by: JuhaManninen on December 16, 2016, 11:35:45 am
What would I need to change to get kcontrols to compile and run on  osx?
I think it is obvious. Use the right type (TThreadID) for MainThreadID.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 16, 2016, 12:22:55 pm
For approximately 10 out of 41 packages the update system is up and running(the external JSON we talked about in previous posts). Later hopefully more package maintainer will join in.
I didn't mean the external JSON thing only. I meant the authors and maintainers should also deliver new versions for the master repository. That is the "official" place after all.
The external JSON update still looks like a little confusing design oddity to me, but no worries, I believe it is needed.
The process of providing packages could still be simplified to make it more attractive for package authors.
Now the wiki says: "Upload somewhere the files and send the link to getmem1@gmail.com".
It should be even simpler.

Quote
I implemented voting system partially(r. 53697), for now it only works locally. Please test!
What will be on server side, is not yet decided, at least not entirely(database server, etc). Communication between a desktop application(Lazarus/OPM) and a remote database is not safe, unless another layer of security is added. It can be done through a php server or free pascal based fastcgi. The second one would be a nice show case for free pascal, but is more difficult to implement. Somebody has experience with fastcgi? I can do the implementation with php.
Hey, let's document things first for a change. What will the server SW do? Could you at least make a bullet point list please. I can try to make a sequence diagram after it.
And yes, I would like to see Free Pascal code there.
Title: Re: Online Package Manager
Post by: minesadorada on December 16, 2016, 01:01:40 pm
Re:Voting system
Could we have a TPopupNotifier or similar show over each star graphic showing what it means?  That way, the voting would be equitable.

..something like:

Popup text over 1 : "Unuseable. Buggy and/or obselete"
Popup text over 2 : "Compiles/Installs, but has many unfixed bugs"
Popup text over 3 : "OK, but poor support for fixes and/or updates"
Popup text over 4 : "OK, but unsuitable for production"
Popup text over 5 : "Perfection!"
Title: Re: Online Package Manager
Post by: balazsszekely on December 16, 2016, 03:11:42 pm
@Juha
Quote
I didn't mean the external JSON thing only. I meant the authors and maintainers should also deliver new versions for the master repository. That is the "official" place after all.
That was my original idea, a well maintained central repository, but then everyone wanted updates  :D. Anyway, once the database server is up and running(I already discussed with Marc about the details), we can give rights to package maintainers, so in the end a direct upload to the central repository will be possible in the future.

Quote
The external JSON update still looks like a little confusing design oddity to me, but no worries, I believe it is needed.
Every major package system works in a similar way. Maybe you didn't follow the latest post, but almost every limitation is lifted now. The package maintainer doesn't have to follow any naming convention, zip structure, etc. Just generate a JSON with OPM, fill in two items, and that's all there is to it. If someone can came up with more simple design I'm open to suggestions.

Quote
Hey, let's document things first for a change. What will the server SW do? Could you at least make a bullet point list please. I can try to make a sequence diagram after it.
I do not understand the question, I mean what list should I create? The server SW is only needed as a gateway between OPM and the database(it will be PostgreSQL), since a direct connection is not safe.
The database will contain the:
  - table with users(package maintainers) and hashed passwords
  - table with user rights
  - table with packages
  - table with votes
  etc.
With time I plan to replace the main JSON(from the central repository) with a table. It's much easier to maintain then a JSON file.

@minesadorada
Quote
Re:Voting system
Could we have a TPopupNotifier or similar show over each star graphic showing what it means?  That way, the voting would be equitable.

..something like:

Popup text over 1 : "Unuseable. Buggy and/or obselete"
Popup text over 2 : "Compiles/Installs, but has many unfixed bugs"
Popup text over 3 : "OK, but poor support for fixes and/or updates"
Popup text over 4 : "OK, but unsuitable for production"
Popup text over 5 : "Perfection!"
Ok, but we all must agree on the list, because it can be very subjective. For example in your list after 4(which is still a crapy level) comes 5 Pefection :D
Title: Re: Online Package Manager
Post by: JuhaManninen on December 16, 2016, 04:21:21 pm
That was my original idea, a well maintained central repository, but then everyone wanted updates  :D. Anyway, once the database server is up and running(I already discussed with Marc about the details), we can give rights to package maintainers, so in the end a direct upload to the central repository will be possible in the future.
Sometimes it makes sense to follow your vision and not listen to others (much).
Anyway, let's see how it will work out.

Quote
Every major package system works in a similar way.
Not really. They usually have only a central repository. Then you can see if your local package is up-to-date or not. Easy, logical and intuitive.
With our hybrid system a local package can be up-to-date with the central repository but not with an external update source, at the same time. Not logical nor intuitive.

Quote
I do not understand the question, I mean what list should I create? The server SW is only needed as a gateway between OPM and the database(it will be PostgreSQL), since a direct connection is not safe.
List the technical details of what the gateway does. Protocols used over the net, data formats, authentication methods (is the forum user account still the plan).
How do you ensure the secure connection? Protocols and libraries used for it?
Is asynchronous communication needed, in addition to what TCP/IP already does?
Etc...
Think you are delegating the job to me and you must explain what must be done.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 16, 2016, 04:41:09 pm
Popup text over 1 : "Unuseable. Buggy and/or obselete"
Popup text over 2 : "Compiles/Installs, but has many unfixed bugs"
Popup text over 3 : "OK, but poor support for fixes and/or updates"
Popup text over 4 : "OK, but unsuitable for production"
Popup text over 5 : "Perfection!"
Such explanations are not needed. The quality is always a subjective matter and it must be so. There is an infinite number of criteria by which people can judge a package. Trying to fit them all into those short explanations is a swamp.
If you look at other sites that allow voting, they also don't try to explain the scale.
For example SourceForge allows voting for different properties:
each having from 1 to 5 starts. The star-scale however is not explained because (I guess) it is so obvious.
1 star means bad and 5 stars mean good.
That is a sufficient explanation for our case, too. A scale from bad to good.

BTW, your texts already raise questions. No package can reach "Perfection!", thus 5 stars cannot be used. Even 4 stars is still unsuitable for production, thus no Lazarus package can be used in production. :(
Title: Re: Online Package Manager
Post by: minesadorada on December 16, 2016, 04:49:26 pm
Popup text over 1 : "Unuseable. Buggy and/or obselete"
Popup text over 2 : "Compiles/Installs, but has many unfixed bugs"
Popup text over 3 : "OK, but poor support for fixes and/or updates"
Popup text over 4 : "OK, but unsuitable for production"
Popup text over 5 : "Perfection!"
Such explanations are not needed. The quality is always a subjective matter and it must be so. There is an infinite number of criteria by which people can judge a package. Trying to fit them all into those short explanations is a swamp.
If you look at other sites that allow voting, they also don't try to explain the scale.
For example SourceForge allows voting for different properties:
  • Ease
  • Features
  • Design
  • Support
each having from 1 to 5 starts. The star-scale however is not explained because (I guess) it is so obvious.
1 star means bad and 5 stars mean good.
That is a sufficient explanation for our case, too. A scale from bad to good.

BTW, your texts already raise questions. No package can reach "Perfection!", thus 5 stars cannot be used. Even 4 stars is still unsuitable for production, thus no Lazarus package can be used in production. :(

I'm willing to be convinced. Let's see how the voting system works out without explanations...
My original list was just a flag to raise - I expected it to be changed by consensus.
Title: Re: Online Package Manager
Post by: balazsszekely on December 16, 2016, 05:54:59 pm
Quote
Not really. They usually have a central repository. Then you can see if your local package is up-to-date or not. Easy, logical and intuitive.
With our hybrid system a local package can be up-to-date with the central repository but not with an external update source. Not logical nor intuitive.
The thing is we have an update system now, we can't put the toothpaste back to the tube.  :) Seriously it would be a shame to drop it.

Quote
List the technical details of what the gateway does. Protocols used over the net, data formats, authentication methods (is the forum user account still the plan). How do you ensure the secure connection? Protocols and libraries used for it? Etc...
Think you are delegating the job to me and you must explain what must be done.
OPM with TFPHtmlClient sends Post/Get requests to the web server like any web browser would do. The protocol is https. It's logical to use it, since the traffic is already encrypted + the database can be also accessed with a browser. The web server can be Apache or a full fpc based server. A third possibility is an Apache with a FastCGI coded in fpc. FastCGi basically it's a interface between a program and a web server. The data format is simple, just basic command for the database: "Ïnsert into TableName(...) values(...)". I cannot tell you more details about the actual implementation until it's not decided what to use: php vs. fpc fastCGI vs full fpc server(it's an overkill for a small project like this). If we choose php I can do all the coding alone, if not I need help because I have little experience in server side coding with fpc. It would be fun to learn, but I'm busy implementing other stuff in OPM. The database server is PostgreSQL, according to Marc is very efficient and secure. I use firebird in my applications. Regarding the forum user account, it can be used, but since we create a new db. with users and passwors for voting/uploding packages to central repository it make sense to use the new username and password.
Title: Re: Online Package Manager
Post by: Rayvenhaus on December 16, 2016, 06:15:42 pm
So, the best way to update OPM at this time is to use SVN?  It's not showing any updates from inside OPM for OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on December 16, 2016, 06:23:18 pm
Quote
@Rayvenhaus
So, the best way to update OPM at this time is to use SVN?  It's not showing any updates from inside OPM for OPM.
Yes, please update from SVN. I almost every day commit something new, it would be an overkill to update the central repository each day. More over, I think I will remove OPM from the repository. It make no sense to keep it there since it's part of lazarus.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 16, 2016, 06:37:30 pm
The thing is we have an update system now, we can't put the toothpaste back to the tube.  :) Seriously it would be a shame to drop it.
Yes. I am not even suggesting that.

Quote
Regarding the forum user account, it can be used, but since we create a new db. with users and passwors for voting/uploding packages to central repository it make sense to use the new username and password.
So your client GUI will have an option to create a new user account? That is OK.

I don't think the CGI / FastCGI makes much difference because voting does not stress the server heavily.
CGI would be easy to implement.
Anyway, someone with experience of FPC on server side should make skeleton code which can then be improved.
Or maybe an existing example can be used as a skeleton.
Title: Re: Online Package Manager
Post by: lainz on December 16, 2016, 08:11:13 pm
I have a question, once the system is ready, for example I create an account it counts for voting and uploading packages, what's the limit? For example I can upload multiple packages, upload duplicate packages, upload some malware. Or it will be like is now moderated?

Edit: A suggestion -> when there's a new version available in the repository show it in bold, the same as when there's a new external version.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 16, 2016, 10:59:49 pm
I have a question, once the system is ready, for example I create an account it counts for voting and uploading packages, what's the limit? For example I can upload multiple packages, upload duplicate packages, upload some malware. Or it will be like is now moderated?
Direct upload must be allowed only for few and selected people. There will be some admin work involved when the write access is given to them.
Rating will be allowed for anybody who logs in.

Let's see how the rating works.
Typically the results are biased to the positive side because only people who use and like a certain package rate it.
People who don't use it, don't rate it either.
I just noticed that Tcl is the "Projects Of The Month" in SourceForge.
 https://sourceforge.net/projects/tcl/
It got 60 ratings and all of them full 5 stars. Uhhh! In reality it is a horrible language. I guess 60 people in the world like it and they all went to rate it.
Title: Re: Online Package Manager
Post by: balazsszekely on December 17, 2016, 09:46:11 am
Quote
@lainz
I have a question, once the system is ready, for example I create an account it counts for voting and uploading packages, what's the limit? For example I can upload multiple packages, upload duplicate packages, upload some malware. Or it will be like is now moderated?
Yes, it must be moderated to prevent spam, malware etc.

Quote
A suggestion -> when there's a new version available in the repository show it in bold, the same as when there's a new external version.
Done r. 53704. Please test.

Quote
@Juha
It got 60 ratings and all of them full 5 stars. Uhhh! In reality it is a horrible language. I guess 60 people in the world like it and they all went to rate it.
:D This is funny!
Title: Re: Online Package Manager
Post by: minesadorada on December 17, 2016, 09:54:59 am
Initial Wiki page for the External JSON Editor:
http://wiki.lazarus.freepascal.org/opmjsonupdateeditor (http://wiki.lazarus.freepascal.org/opmjsonupdateeditor)

Quote
It got 60 ratings and all of them full 5 stars. Uhhh! In reality it is a horrible language. I guess 60 people in the world like it and they all went to rate it.
This can be the problem.  In a 5-star system, voting stars 2,3,and 4 are pretty meaningless without explanation, so people usually vote nothing or 1 (bad) or 5 (good) - a bit like the FaceBook 'like' button.
If the displayed stars are an average of all votes this could be sort-of okay.  The best-of-all system would be a reviews list webpage with individual ratings and comments (like imdb) but I do understand this would be shooting too high at this stage.  Let's see how it goes.

Re Direct upload: Perhaps to a 'sandbox' repository; then the moderator vets before moving to the 'real' repository?  This has the advantage that the author can test it him/herself (changing OPM/Options/General/Remote Repository to the sandbox URL) before notifying the moderator.  Only the moderator would have write access to the 'real' repository, which is the secure and accountable option.

Re Direct 'Upload': IMO the easiest way is to manage it is via svn access to the sandbox repository.  It could even be hosted for free on SF, so logins/account management/malware scanning/version control etc  are already done for you. (just add the prospective author's SF accountname to the OPMSandbox project as a 'Developer')  It already works fine for ccr and svn is available for all platforms AFAIK.  In SF there are separate permissions available for file management and svn access.
Title: Re: Online Package Manager
Post by: minesadorada on December 17, 2016, 10:59:13 am
OPM Rev 53704:
Screenshot 1 - after a ForceNotify
Screenshot 2 - after a version change

Question: Is there a process planned for merging updates into the main repository after a suitable period?
Title: Re: Online Package Manager
Post by: balazsszekely on December 17, 2016, 11:23:18 am
@minesadorada
Quote
Initial Wiki page for the External JSON Editor:
http://wiki.lazarus.freepascal.org/opmjsonupdateeditor
You should add a link to your wikipage: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_upates

Quote
OPM Rev 53704:
Screenshot 1 - after a ForceNotify
Screenshot 2 - after a version change
The screenshots are OK. There should be no difference visually between ForceNotify and a Version change(except the version number).

Quote
Question: Is there a process planned for merging updates into the main repository after a suitable period?
Yes. Most likely will be an option to directly upload a package to main repository. Authentication needed.
Title: Re: Online Package Manager
Post by: lainz on December 17, 2016, 02:40:27 pm
About this article
http://wiki.freepascal.org/opmjsonupdateeditor

I only need to say that must be consistent the naming of the tool.

"opmjsonupdateeditor"
"Online Package Manager External Update json Editor"
"External OPM JSON package editor"

Please just choose one and only one.
Title: Re: Online Package Manager
Post by: minesadorada on December 17, 2016, 08:11:41 pm
About this article
http://wiki.freepascal.org/opmjsonupdateeditor (http://wiki.freepascal.org/opmjsonupdateeditor)

I only need to say that must be consistent the naming of the tool.

"opmjsonupdateeditor"
"Online Package Manager External Update json Editor"
"External OPM JSON package editor"

Please just choose one and only one.
What is your suggestion to choose? (One is the application title, the other is more descriptive.  The filename is jsoneditor.)

The wiki page name is terrible - I was in a hurry :) AFAIK I can't change it now.

The app needs a bit of testing - it's quite ambitious.  A bug/undocumented feature I am aware of; when changing languages 'on-the-fly' control array #0 doesn't update until a restart of the app.

Thanks for your help @lainz in starting the code and doing translations.
Title: Re: Online Package Manager
Post by: lainz on December 17, 2016, 09:22:45 pm
The one is more descriptive. You can change the application title easily.

You can copy everything in the article and make a new one with the right name. Then empty the other article and I'm not sure how but there's a setting like mark for deletion, if you don't find that ask an administrator.
Title: Re: Online Package Manager
Post by: minesadorada on December 18, 2016, 10:40:30 am
I settled on OPM External Update json Editor for wiki page and application title: http://wiki.freepascal.org/OPM_External_Update_json_Editor (http://wiki.freepascal.org/OPM_External_Update_json_Editor)

-edit- Added categories links etc.  All should be good now.
Title: Re: Online Package Manager
Post by: AlexTP on December 19, 2016, 08:53:05 pm
Now i see listview with items captions:

-fortes4lazarus 3.24
-indy10.6.2
-eyecandycontrols_0-9-6

my wish is: show NICE titles in column-0:

-Fortes for Lazarus
-Indy
-EyeCandyControls
Title: Re: Online Package Manager
Post by: AlexTP on December 19, 2016, 08:56:54 pm
And also i see bug on Today's trunk:
i just move mouse over listview, and IDE shows
"List index out of bounds (-1)"; before i resized header column-0 to wider size.
maybe caused by none selection in list.

Ubuntu 14.04 x64
Title: Re: Online Package Manager
Post by: AlexTP on December 19, 2016, 09:12:22 pm
"OPM External Update json Editor" - I suggest shorter one "OPM Editor", "OPM Helper", "OPM Assistant"
Title: Re: Online Package Manager
Post by: minesadorada on December 19, 2016, 10:25:25 pm
"OPM External Update json Editor" - I suggest shorter one "OPM Editor", "OPM Helper", "OPM Assistant"

I thank you for the suggestions, but the app is very specific - it edits only external update jsons, and is not part of OPM itself.  If I was selling it then marketing and brand/product recognition via a snappy title would probably be more important...  Treat it as an ugly but useful gift.
Title: Re: Online Package Manager
Post by: AlexTP on December 19, 2016, 10:27:36 pm
I found how to make my ATButtons.zip. How to send it to OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on December 19, 2016, 10:38:04 pm
@Alextp
Quote
Now i see listview with items captions:
-fortes4lazarus 3.24
-indy10.6.2
-eyecandycontrols_0-9-6

my wish is: show NICE titles in column-0:
-Fortes for Lazarus
-Indy
-EyeCandyControls
The packages names are given by the package maintainers,  besides each package can have multiple versions(see virtual tree).

Quote
And also i see bug on Today's trunk:
i just move mouse over listview, and IDE shows
"List index out of bounds (-1)"; before i resized header column-0 to wider size.
maybe caused by none selection in list.
Ubuntu 14.04 x64
I don't have ubuntu,  but I did test it on kali linux and I cannot reproduce the error. Can you please debug it and tell me which line cause the error? Thanks.
 
Quote
I found how to make my ATButtons.zip. How to send it to OPM?
Just paste the link to your package(s), I will add them tomorrow.
Title: Re: Online Package Manager
Post by: AlexTP on December 19, 2016, 10:51:24 pm
Anyway, it is bad looking.
-fortes4lazarus 3.24
-indy10.6.2
-eyecandycontrols_0-9-6
must be one scheme. caps of not caps. version or not. _ or - or dot or space.
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2016, 08:25:03 am
@Alextp
I added ATButtons, ATGauge to the central repository. The update link for your packages is wrong. Please read this section:
http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates
Basically use the "Create-->Create JSON for updates" menu item.

I think the version number after package name(Column0) it's not needed, since is visible in column1, 2, 3 anyway.
Title: Re: Online Package Manager
Post by: AlexTP on December 20, 2016, 02:56:34 pm
thanks for Nice Column0 :). Notes:
1) You use OpenDialog (i see Open btn, not Save) for saving my zip file
2) Pls disallow Github ZIP links, which I filled before (url of  master zip)

edit
3) For CalLite, i click item in column Status/data, url at wiki, but Firefox dont open
Title: Re: Online Package Manager
Post by: AlexTP on December 20, 2016, 03:04:27 pm
4) For my comp's I want to fill "wiki" infos: url of Laz wiki, not url of Github homepage (both needed, GH+wiki)
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2016, 05:26:34 pm
Quote
Pls disallow Github ZIP links, which I filled before (url of  master zip)
Done.

Quote
For CalLite, i click item in column Status/data, url at wiki, but Firefox dont open
Click-->Select row
DbClick--> Open link

Quote
For my comp's I want to fill "wiki" infos: url of Laz wiki, not url of Github homepage (both needed, GH+wiki)
Paste here the home package link and I will add it to them main JSON, you should also fill the update link.

Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2016, 01:27:21 pm
I extended the options dialog. Now it's possible to set the update interval + filters for packages. When creating a repository package, the zipped files are filtered according to the settings from option dialog(r. 53748). Please test.
Title: Re: Online Package Manager
Post by: minesadorada on December 21, 2016, 07:44:56 pm
Excellent work - thanks!

Is there a regression? After an update, I note that the description and license fields are once again unchanged from the original.

For future?
- I was able to create a package with just the Category field filled out (no display name, home page nor update link)
- No fields yet to indicate compatibility (min fpc version, min laz version supported OS/WidgetSet)
- A component may be useless without a clear understanding of its license (which may not be specified in the lpk)  How can OPM handle this?
- No dialog as to what to do next once the zip and json have been created

I had to add some exclusion filters; here's the set that works for most packages in ccr  (note /updates which is created by the Json Updates editor)
Title: Re: Online Package Manager
Post by: lainz on December 21, 2016, 08:24:57 pm
You can add .git and .svn folders too.
Title: Re: Online Package Manager
Post by: minesadorada on December 21, 2016, 08:27:30 pm
You can add .git and .svn folders too.
+1
Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2016, 09:33:07 pm
@minesadorada
Quote
Excellent work - thanks!
Thank you.

Quote
Is there a regression? After an update, I note that the description and license fields are once again unchanged from the original.
Yes it is! Fixed in r. 53750.
Quote
I was able to create a package with just the Category field filled out (no display name, home page nor update link)
Well those field are not mandatory. OPM can work without them. I updated the wiki a few days ago: http://wiki.freepascal.org/Online_Package_Manager#Create_repository_package
Quote
No fields yet to indicate compatibility (min fpc version, min laz version supported OS/WidgetSet)
Click to each child node(*lpk files), you will see those fields and even correct them if necessary.
Quote
A component may be useless without a clear understanding of its license (which may not be specified in the lpk)  How can OPM handle this?
The license/description is loaded from the *.lpk file. Editing directly from OPM would be confusing. Which is the real license?
Quote
No dialog as to what to do next once the zip and json has been created
The plan is to upload the packages directly to the main repository, however in order for the upload to work we need somekind of gateway, accessing the database directly is not safe. A fpc based FastCGI implementation would be ideal.

Quote
I had to add some exclusion filters; here's the set that works for most packages in ccr  (note /updates which is created by the Json Updates editor)
Thank you! Please copy all your filters from your configuration file and paste here.
Config file: C:\Users\%user%\AppData\Local\lazarus\onlinepackagemanager\config\options.xml
Search for: ExcludedFiles, ExcludedFolders

PS: For now it would be great if I can send the zip + json through mail, unfortunately fpc doesn't have a native component for sending mail.
Title: Re: Online Package Manager
Post by: minesadorada on December 21, 2016, 10:03:08 pm
Quote
Yes it is! Fixed in r. 53750.
Thanks.  Tested OK.
Quote
The license/description is loaded from the *.lpk file. Editing directly from OPM would be confusing. Which is the real license?
If the lpk licence entry is empty then 'Create Package' could offer options, or at least a warning (it would be the package author creating the OPM entry)  I think it's important enough to implement.

Quote
Click to each child node(*lpk files), you will see those fields and even correct them if necessary
This needs to be in the update json spec, since an update could modify compatibility.


Quote
The plan is to upload the packages directly to the main repository, however in order for the upload to work we need somekind of gateway, accessing the database directly is not safe. A fpc based FastCGI implementation would be ideal.
Did you read my post about a 'sandbox' repository?  Possibly hosted by SourceForge and accessible via svn?  A sandbox repository addresses most security concerns.
I think it's an extremely bad idea to allow anyone but the OPM moderator access to the main repository.

Quote
Please copy all your filters from your configuration file and paste here.
I thought the screenshot +lainz's post said it all.  If not, I can do as you suggest.
Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2016, 10:26:50 pm
Quote
If the lpk licence entry is empty then 'Create Package' could offer options.  I think it's important enough to implement.
You forget that we talk about package maintainers here not beginners. Ok I'm not against it, if somebody implements it...

Quote
Did you read my post about a 'sandbox' repository?  Possibly hosted by SourceForge?  A sandbox repository addresses most security concerns.
I think it's an extremely bad idea to allow anyone but the OPM moderator access to the main repository.
We have a dedicated VM just for OPM on lazarus official page, why should we in involve sourceforge? Everyone(after a login) will be able to upload files,  the packages will be visible/available for download only after moderation. It's the same system as you described in your post(mostly).

Quote
I thought the screenshot +lainz's post said it all.  If not, I can do as you suggest.
The screenshot is clear but to prevent errors it would be much easier to copy/paste. Anyway I did it, I will commit it tomorrow. Thanks.
Title: Re: Online Package Manager
Post by: minesadorada on December 21, 2016, 10:30:12 pm
Thanks for the responses @Getmem.  I appreciate your patience and hard work.
Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2016, 10:56:50 pm
@minesadorada
Quote
This needs to be in the update json spec, since an update could modify compatibility.
Again I agree, but then we have to redesign the whole external json structure + retest it from scratch.  :) A quick shortcut is to read the lpk after install/update, this is exactly what OPM does now for description and license. I can extend it for other items too.
Title: Re: Online Package Manager
Post by: tk on December 22, 2016, 10:34:23 am
What would I need to change to get kcontrols to compile and run on  osx?

Use newest version from repository at https://bitbucket.org/tkweb/kcontrols.
It compiles and runs well on osx.
When sth. is not working, ask here: http://tkweb.eu/en/delphicomp/kcontrols.html.

I noticed this forum already before but did not try the package manager yet.
From the screenshot I can see there is KControls 1.7. This is last "stable", but very old already.
(I still don't have everything ready what I planned for KControls 1.8 )

Is there any option to add a link to the repository for the included package (to give the option to download newer version) or maybe to its forum as well?
Title: Re: Online Package Manager
Post by: JD on December 22, 2016, 11:02:19 am
I noticed this forum already before but did not try the package manager yet.
From the screenshot I can see there is KControls 1.7. This is last "stable", but very old already.
(I still don't have everything ready what I planned for KControls 1.8 )

@tk Hi there. Thanks for your good work. Is KControls 1.8 ready for production use?
Title: Re: Online Package Manager
Post by: minesadorada on December 22, 2016, 11:23:45 am
I found an obscure bug in Cryptini; fixed it, and using the JsonEditor and OPM the bugfixed version (0.1.3.0) was available to all within 5-10 minutes.  That's what I call quick deployment!

Quote
Is there any option to add a link to the repository for the included package (to give the option to download newer version)
Check out the wiki: http://wiki.lazarus.freepascal.org/Online_Package_Manager#Create_JSON_for_updates (http://wiki.lazarus.freepascal.org/Online_Package_Manager#Create_JSON_for_updates) It's really easy to deploy updates with OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on December 22, 2016, 01:34:17 pm
@minesadorada
I uploaded the extensions provided by you and @lainz, the list are sorted now both for files and dirs. I also added two help buttons to the following forms: "Create repository package" and "Create exteranl JSON".

@tk
Quote
Is there any option to add a link to the repository for the included package (to give the option to download newer version) or maybe to its forum as well?
Yes, basically you have to:
1. Create a JSON file with OPM
2. Edit "DownloadZipURL" and "Version" fields
3. Upload somewhere the JSON
4. Paste here the link, so I can update the main repository
When you release a new version, just update the zip file and increase the version number.
More details here: http://wiki.lazarus.freepascal.org/Online_Package_Manager#Create_JSON_for_updates

Thank you!
Title: Re: Online Package Manager
Post by: lainz on December 22, 2016, 08:51:32 pm
Hi GetMem, you can add these packages please?

File Association for Windows - modified LGPL (lainz)
https://github.com/lainz/FileAssociation
http://wiki.freepascal.org/FileAssociation

BGRA Games (Some BGRABitmap games and related units) modified LGPL (lainz, circular)
https://github.com/bgrabitmap/bgragames

uE Controls (Another set of UI components) see the readme for the author and license
https://github.com/bgrabitmap/uecontrols

Kaaj Controls (Controls for fpGUI) modified LGPL (lainz)
https://github.com/bgrabitmap/kaajcontrols

Lainz Code Studio (Lua scripting units and small test project) modified LGPL (lainz)
https://github.com/lainz/lainzcodestudio

And about these packages: These maybe will not be updated a lot so for now I will not mantain an external json. That doesn't mean that these are not usefull. Some are not mine like ueControls but I've mirrored that in bgrabitmap organization, the original code is at sourceforge (https://sourceforge.net/projects/uecontrols/)
Title: Re: Online Package Manager
Post by: AlexTP on December 22, 2016, 09:58:35 pm
Quote
>If the lpk licence entry is empty then 'Create Package' could offer options, or at least a warning

It is needed. And gut to show checklistbox, with items "LGPL, MPL 1.0, MPL 2.0, MIT......" to easy check one item.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 23, 2016, 12:08:40 am
I noticed this forum already before but did not try the package manager yet.
From the screenshot I can see there is KControls 1.7. This is last "stable", but very old already.
(I still don't have everything ready what I planned for KControls 1.8 )
You can release a bug fix dot-release, say 1.7.5.

Quote
Is there any option to add a link to the repository for the included package (to give the option to download newer version) or maybe to its forum as well?
You should create a repository package of your new KControls 1.7.5 release and send it to GetMem.
See:
http://wiki.freepascal.org/Online_Package_Manager#Create_repository_package

It is important that package maintainers provide them. Otherwise this will not work well in years to come.
Please everybody advertise this to package authors.
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 09:39:21 am
@lainz
I added the packages. Thanks! I also fixe BGRABitmap in the central repository by adding LCLPlatformDef to the uses clauses for BGRAText unit. Apparently some things where moved around lately. Since BGRABitmap is used a lot, I thought I fix it.

Quote
These maybe will not be updated a lot so for now I will not mantain an external json.
That's ok. The update feature is a possibility not mandatory.


PS: I also updated KControls to the latest version.
Title: Re: Online Package Manager
Post by: tk on December 23, 2016, 10:38:46 am
@tk Hi there. Thanks for your good work. Is KControls 1.8 ready for production use?

Not yet. I still need some time to implement planned features.

@GetMem, @Juha, @minesadorada:
Thank you all, I'll try the OPM and see what I can do.
Title: Re: Online Package Manager
Post by: JD on December 23, 2016, 11:25:19 am
@tk Hi there. Thanks for your good work. Is KControls 1.8 ready for production use?

Not yet. I still need some time to implement planned features.

OK. Noted!
Title: Re: Online Package Manager
Post by: lainz on December 23, 2016, 04:04:55 pm
Thanks GetMem, almost 50 packages available as single click installation.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 23, 2016, 06:46:23 pm
I also fixe BGRABitmap in the central repository by adding LCLPlatformDef to the uses clauses for BGRAText unit. Apparently some things where moved around lately. Since BGRABitmap is used a lot, I thought I fix it.
Yes.
 http://wiki.freepascal.org/Lazarus_1.8.0_release_notes#TLCLPlatform_definition_was_moved
Did you offer the fix to the master BGRABitmap sources, too?
I admire your enthusiasm but you are essentially forking the original package's code now. In some other situation it can create a mess and the changes in your fork are overwritten.
The online repository should be used for delivering, not forking, existing packages.

Quote
PS: I also updated KControls to the latest version.
I still see version 1.7. I understood it is the latest version so far.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 23, 2016, 06:58:09 pm
The OPM client creates a 100% CPU load for one processor core. It looks like OnIdle load because it does not slow anything down, but it will kill laptop batteries quickly.
I did not study the code (yet) for possible reasons.
Title: Re: Online Package Manager
Post by: lainz on December 23, 2016, 07:00:06 pm
I can fix the bgrabitmap pack but I need some help, adding that unit (LCLPlatformDef) to uses clause makes the package don't compile in Lazarus 1.6.

Any ideas? It will work in Lazarus 1.8, so I need something in the uses clause that adds the unit only in 1.8 or 1.7 trunk, never in 1.6.x
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 07:43:20 pm
@Juha
Quote
The OPM client creates a 100% CPU load for one processor core. It looks like OnIdle load because it does not slow anything down, but it will kill laptop batteries quickly.
Fixed in r. 53769. Please test.

@lainz
Quote
Any ideas? It will work in Lazarus 1.8, so I need something in the uses clause that adds the unit only in 1.8 or 1.7 trunk, never in 1.6.x
Code: Pascal  [Select][+][-]
  1. {$IF LCL_FULLVERSION >= 1070000} LCLPlatformDef; {$ENDIF}
I also must add to the one in central repository.
Title: Re: Online Package Manager
Post by: lainz on December 23, 2016, 07:52:42 pm
Code: Pascal  [Select][+][-]
  1. {$IF LCL_FULLVERSION >= 1070000} LCLPlatformDef; {$ENDIF}

Hi GetMem, I tried with your code but it gives me an error, with FPC 3.0
Code: Pascal  [Select][+][-]
  1. bgratext.pas(35,7) Error: Incompatible types: got "AnsiString" expected "Int64"
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 08:02:53 pm
@lainz
I mean like this(BGRAtext.pas):
Code: Pascal  [Select][+][-]
  1. //...
  2. uses
  3.   Classes, Types, SysUtils, BGRAGraphics, BGRABitmapTypes, InterfaceBase, BGRAPen,
  4.   {$IF LCL_FULLVERSION >= 1070000} LCLPlatformDef,{$ENDIF} BGRAGrayscaleMask;  
  5. //...
  6.  
Title: Re: Online Package Manager
Post by: lainz on December 23, 2016, 08:09:41 pm
I know. I did that, but again the compiler gives me the same error.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 23, 2016, 09:36:46 pm
Code: Pascal  [Select][+][-]
  1. {$IF LCL_FULLVERSION >= 1070000} LCLPlatformDef; {$ENDIF}
Hi GetMem, I tried with your code but it gives me an error, with FPC 3.0
Code: Pascal  [Select][+][-]
  1. bgratext.pas(35,7) Error: Incompatible types: got "AnsiString" expected "Int64"
I am getting the same error when the IF condition is in the interface section. It works when it is in the implementation section.
It must be a bug in FPC 3.0. Does anybody know about it?
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 09:41:47 pm
Add LCLVersion to the first uses, then it works in the second one:
Code: Pascal  [Select][+][-]
  1. uses GraphType, Math, BGRABlend, BGRAUTF8, {$IF LCL_FULLVERSION > 1060000} LCLPlatformDef{$ENDIF};
and you must use ">" instead of ">= " since ">=" won't work in FPC 3.1.1. I have no idea why.

http://forum.lazarus.freepascal.org/index.php/topic,34297.msg229826.html#msg229826
Title: Re: Online Package Manager
Post by: JuhaManninen on December 23, 2016, 09:55:08 pm
Add LCLVersion to the first uses, then it works in the second one:
Code: Pascal  [Select][+][-]
  1. uses GraphType, Math, BGRABlend, BGRAUTF8, {$IF LCL_FULLVERSION > 1060000} LCLPlatformDef{$ENDIF};
Yes, then it works in the implementation uses section.
I tried to have both LCLVersion and the IF condition in interface uses section. Doesn't work!

Quote
and you must use ">" instead of ">= " since ">=" won't work in FPC 3.1.1. I have no idea why.
It must be a bug. Somebody should report it.

Quote
Fixed in r. 53769. Please test.
Works well now. Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 09:58:57 pm
@Juha
Can you please check if my latest commit fix the CPU load issue?

Quote
It must be a bug. Somebody should report it.
I can report it later, maybe they fixed already. I have to check fpc 3.1.1 again or perhaps somebody has 3.1.1 installed and can do a quick test?
Title: Re: Online Package Manager
Post by: lainz on December 23, 2016, 10:15:22 pm
I did as you say and I get another error:

Quote
bgratext.pas(119,76) Fatal: no puedo encontrar LCLPlatformDefutilizado por BGRAText de paquete BGRABitmapPack.

The unit in the implementation uses is grayed, but it says it (the error) doesn't matter the unit it's grayed. I'm on 1.6 FPC 3.0.

Code: Pascal  [Select][+][-]
  1. uses
  2.   Classes, Types, SysUtils, BGRAGraphics, BGRABitmapTypes, InterfaceBase, BGRAPen, BGRAGrayscaleMask,
  3.   LCLVersion;
  4.  
  5. ...
  6.  
  7. implementation
  8.        
  9. uses GraphType, Math, BGRABlend, BGRAUTF8 {$IF LCL_FULLVERSION > 1060000}, LCLPlatformDef{$ENDIF};
Title: Re: Online Package Manager
Post by: tk on December 23, 2016, 10:22:28 pm
Yes, basically you have to:
1. Create a JSON file with OPM
...

I installed the OPM now and read the wiki, it looks already very good at first look, but I still have some questions.

1. From what I've read, it still does not provide a direct connection to Bitbucket? There I maintain the main repository of KControls (locally via Mercurial). So without this support the OPM can now only work with "stable" or "bugfix" releases stored somewhere on my website?

2. Does it support private packages? I have several packages stored in my private cloud drive and I must always install them manually. It would be great to automate this task via the OPM.

Thank you and Merry Christmas to all




Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 10:39:38 pm
@lainz
Please check the values in LCLVersion. Perhaps the release or patch version is greater then 0. Anyway this should work(I don't have 1.6 to test):
Code: Pascal  [Select][+][-]
  1. uses GraphType, Math, BGRABlend, BGRAUTF8 {$IF (lcl_major > 0) and (lcl_minor > 6)}, LCLPlatformDef {$ENDIF};
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 10:58:08 pm
Quote
I installed the OPM now and read the wiki, it looks already very good at first look.
Thank you.

Quote
1. From what I've read, it still does not provide a direct connection to Bitbucket? There I maintain the main repository of KControls (locally via Mercurial). So without this support the OPM can now only work with "stable" or "bugfix" releases stored somewhere on my website?
I'm not sure what you mean by direct connection. There is no implementation that support Bitbucket api, however OPM can download from Bitbucket. For example I see that the download link to the latest version is: https://bitbucket.org/tkweb/kcontrols/get/d35ac14451b2.zip. With the following JSON, OPM can update KControls whenever is necessary. What is in the zip file is up to you, you can feed stable or trunk version.
Quote
{
  "UpdatePackageData" : {
    "DisableInOPM" : false,
    "DownloadZipURL" : "https://bitbucket.org/tkweb/kcontrols/get/d35ac14451b2.zip",
    "Name" : "kcontrols_1.7"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "kcontrolsbase.lpk",
      "Version" : "1.7.0.0"
    },
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "kcontrolslaz.lpk",
      "Version" : "1.7.0.0"
    }
  ]
}
All you have to do is upload this JSON wherever you like(bitbucket, personal site etc) and send me the link so I can update the main repository. When a new version is out, just change "DownloadZipURL" and increase "Version". OPM will automatically notify the user about a new version.
Quote
2. Does it support private packages? I have several packages stored in my private cloud drive and I must always install them manually. It would be great to automate this task via the OPM.
Yes. Please send as many package you like. You can use the "Create repository package" menu item from OPM, or just paste the link to your package herre and I will add them manually. Make sure your lpk contains a good description and a license info, also please specify the supported widgetset.
Title: Re: Online Package Manager
Post by: minesadorada on December 23, 2016, 11:07:47 pm
I'm running trunk/trunk and no LCL version $DEFINE seems to work.  FPC $DEFINES are OK -  though <= and >= seem to be broken.  I'd like to see the solution because I need it in jsoneditor.
I've tried lclversion in the .lpr and as the first item in the form's implementation uses clause.
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2016, 11:12:52 pm
@minesadorada
Thanks for confirming. In this case we should report it.
Title: Re: Online Package Manager
Post by: tk on December 23, 2016, 11:35:40 pm
So I started managing all 3rd party packages using OPM. Surprisingly none I've used so far was missing! Excellent work!

...however OPM can download from Bitbucket.

Now I understand and I'll send you the link to the JSON. I think this is sufficient for now. I just wanted to avoid the frequent uploading of the entire zip file somewhere to my web site. Still for future I would appreciate (and I am sure many other package authors as well) that the OPM notifies the users about a change (new commits) in the linked repository (not just for the case the package author forgets to update the JSON). This would need some additional work (add the repository type and url to the JSON + communicate with the repository webservice).

Yes. Please send as many package you like.

I meant private packages with proprietary code created/used in our company, I cannot disclose them. I meant something like adding another (private) remote repository to the OPM settings and add these packages to this repository. OPM would then manage two repositories eg.:
1. http://packages.lazarus-ide.org
2. http://ourprivaterepository.ourdomain.com
Title: Re: Online Package Manager
Post by: minesadorada on December 23, 2016, 11:53:19 pm
@tk In OPM/Options you can switch repositories at will.
If your package is under svn or similar; using the GUI http://wiki.freepascal.org/OPM_External_Update_json_Editor (http://wiki.freepascal.org/OPM_External_Update_json_Editor) and a Zip archiver means you get an update out to all OPM users in under 5 minutes.  It only makes sense to offer stable versions to OPM.

I would be good to have documentation about how to set up a private repository server, though.  Perhaps later?
Title: Re: Online Package Manager
Post by: tk on December 24, 2016, 12:39:04 am
@tk In OPM/Options you can switch repositories at will.

This I suppose because there is edit box for the repository URL. But still, in future, I would appreciate to manage more repositories concurrently. Switching them would be a mess. Either way, of course a wiki about private repository structure/setup would be necessary.

Title: Re: Online Package Manager
Post by: lainz on December 24, 2016, 02:17:15 am
@minesadorada
Thanks for confirming. In this case we should report it.

If there's a bug in that functionality better I don't add the unit fix to bgra sources until 1.8 gets real, else it will add more problems to these that are using 3.1 and trunk, only for making it compatible with 1.6 (something that already is).
Title: Re: Online Package Manager
Post by: minesadorada on December 24, 2016, 02:51:15 am
@lainz I don't know if this helps your situation:

It's possible to isolate fpc v3.1.1 (or other fpc versions) successfully with the current broken trunk functionality:
Code: Pascal  [Select][+][-]
  1. {$IF FPC_VERSION = 3}
  2.   {$IF FPC_RELEASE > 0}
  3.    {$IF FPC_PATCH > 0}
  4.      {$DEFINE FPC311}
  5.     {$ENDIF}
  6.   {$ENDIF}
  7. {$ENDIF}
  8.  

Then:
Code: Pascal  [Select][+][-]
  1. {$IFDEF FPC311}<code that breaks under 3.0.0>{$ENDIF}
Title: Re: Online Package Manager
Post by: minesadorada on December 24, 2016, 03:16:30 am
Re Laz version detection:

Fiddling around with Trunk/Trunk I found a workaround that works for the initialization section of my unit, where I needed it.  It might be useful for others coding with current trunk.

Here's the state of play with fpc 3.11/laz 1.7 (svn rev 53588m)

The highest scope this can go is after the unit's Interface Uses clause
Code: Pascal  [Select][+][-]
  1. interface
  2. uses lclversion, <other stuff> ;
  3. {$IF LCL_FULLVERSION >= 1070000}
  4.   {$DEFINE LAZ17}
  5. {$ENDIF}
  6.  

From that point on,
Code: Pascal  [Select][+][-]
  1. {$IFDEF LAZ17}<some laz 1.7+ code>{$ENDIF}
works throughout the unit's implementation, initialization (and finalization AFAIK) but obviously not in the Interface Uses clause
It does work in the implementation Uses clause.

The 'greying out' feature of the editor is misleading when using {$IFDEF LAZ17} in this way, but the compiler sees it correctly.

I have no idea if this is a regression, bug or intended behaviour as I haven't needed to test for Laz version before now.
Title: Re: Online Package Manager
Post by: balazsszekely on December 24, 2016, 08:26:26 am
@tk
Quote
I meant private packages with proprietary code created/used in our company, I cannot disclose them. I meant something like adding another (private) remote repository to the OPM settings and add these packages to this repository. OPM would then manage two repositories eg.:
1. http://packages.lazarus-ide.org
2. http://ourprivaterepository.ourdomain.com
Oh, I see! I misunderstood the question. Private repositories are not supported yet, I plan to add it later(most likely in the beginning of January).

@lainz
I was also surprised that {$IF LCL_FULLVERSION >= 1070000} not working in the interface section, however works well below. I used many time in OPM.
Quote
If there's a bug in that functionality better I don't add the unit fix to bgra sources until 1.8 gets real, else it will add more problems to these that are using 3.1 and trunk, only for making it compatible with 1.6 (something that already is).
Yes, that's a good idea. Those who use Lazarus trunk can tweak the source anyway.

@minesadorada
Quote
The highest scope this can go is after the unit's Interface Uses clause
We came to the same conclusion, but is a bug an should be reported. I will ask in the devlist later, maybe somebody knows more about this issue.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 24, 2016, 09:50:48 am
Code: Pascal  [Select][+][-]
  1. interface
  2. uses lclversion, <other stuff> ;
  3. {$IF LCL_FULLVERSION >= 1070000}
  4.   {$DEFINE LAZ17}
  5. {$ENDIF}
  6.  
Do you mean the ">=" operator works also in FPC trunk after all?

Quote
The highest scope this can go is after the unit's Interface Uses clause
We came to the same conclusion, but is a bug an should be reported. I will ask in the devlist later, maybe somebody knows more about this issue.
I had understood the bug was ">=" operator not working.
The condition does not work inside the Interface Uses clause although it works in Interface section otherwise.
That may be a feature instead of a bug. Reading the unit references may be done in one chomp. LCL_FULLVERSION is not evaluated yet then.
Better ask in FPC list.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 24, 2016, 10:57:53 am
Quote
I meant private packages with proprietary code created/used in our company, I cannot disclose them. I meant something like adding another (private) remote repository to the OPM settings and add these packages to this repository. OPM would then manage two repositories eg.:
1. http://packages.lazarus-ide.org
2. http://ourprivaterepository.ourdomain.com
Oh, I see! I misunderstood the question. Private repositories are not supported yet, I plan to add it later(most likely in the beginning of January).
You mean you add support for multiple repositories? Tk's second URL could have any domain, makes no difference.
Private directories / packages are not in the scope of an online package manager.
The next important step will be tight integration with Lazarus package system. Now it does not know about online packages until they are installed.
The Lazarus package graph already can resolve dependencies between packages it knows about. The goal is to let it know about available online packages which would then become part of that package graph.
Lazarus components/ already contains packages with external dependencies, for example TAChartBgra.  Now trying to install it gives an error. In future it would automatically install BgraBitmapPack from online repo.
In the same way an external package can depend on a package in Lazarus components/. Then you must dump your current dependency handling code and integrate it with the package graph.
Details must be discussed in Lazarus devel list. Mattias is the most knowledgeable person about package graph.
Title: Re: Online Package Manager
Post by: balazsszekely on December 24, 2016, 01:58:42 pm
Quote
You mean you add support for multiple repositories? Tk's second URL could have any domain, makes no difference.
Private directories / packages are not in the scope of an online package manager.
Yes, support for multiple repositories. If the repository owner decide to share it it's public otherwise is private.

Quote
The next important step will be tight integration with Lazarus package system. Now it does not know about online packages until they are installed.
The Lazarus package graph already can resolve dependencies between packages it knows about. The goal is to let it know about available online packages which would then become part of that package graph.
Lazarus components/ already contains packages with external dependencies, for example TAChartBgra.  Now trying to install it gives an error. In future it would automatically install BgraBitmapPack from online repo.
In the same way an external package can depend on a package in Lazarus components/. Then you must dump your current dependency handling code and integrate it with the package graph.
Details must be discussed in Lazarus devel list. Mattias is the most knowledgeable person about package graph.
I don't know about this. Although they have similar functionality the two system are completely different. Mixing them would be like mixing bananas with oranges. Mattias use critical sections when loading the packages syncing those with my threaded system is a non-trivial operation. When searching for dependencies the local package manager has all the info needed in lpks, OPM has to rely on limited info available in the main JSON. For this to work everything has to be moved inside the packager folder, OPM once again completely redesigned, the two dialogs somehow mixed to become one. The benefits? Some lazy user don't have to open a second dialog to check if a package is available online. OPM was not meant to replace the "Install/Uninstall packages" dialog, it's just a tool to install as many packages you like with a button click. Until now you had to open each package, press the compile then the install button. Another benefit is that all the packages are in one place, with the latest updates available you don't have to go through the maintainers site.

PS: Before anything somebody must implement that fpc based cgi/fastcgi, so the database server can be used for maintaining the main repository + implement the voting system.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 24, 2016, 03:52:35 pm
I don't know about this. Although they have similar functionality the two system are completely different. Mixing them would be like mixing bananas with oranges.
No, they both deal with Lazarus packages and their dependencies and installation. Conceptually the same thing. OPM is a front-end to external packages, Lazarus has front-end code for packages in local file system. The common code installs them and maintains a package graph.
You forgot that OPM already integrates into the package system using IDEIntf API, but in a clumsy and limited way.

Quote
Mattias use critical sections when loading the packages syncing those with my threaded system is a non-trivial operation. When searching for dependencies the local package manager has all the info needed in lpks, OPM has to rely on limited info available in the main JSON.
What info is missing from the JSON? I think it is pretty complete.
The package system code must be refactored and changed obviously to understand online packages.

Quote
For this to work everything has to be moved inside the packager folder, OPM once again completely redesigned, the two dialogs somehow mixed to become one.
No no! The package-API must be extended to support it. Don't worry, I am not asking you to do it. :)

Quote
The benefits? Some lazy user don't have to open a second dialog to check if a package is available online. OPM was not meant to replace the "Install/Uninstall packages" dialog, it's just a tool to install as many packages you like with a button click. Until now you had to open each package, press the compile then the install button.
Now you confuse the package system (dependency management + installation etc.) and its GUI front-ends.
The "Install/Uninstall packages" is a GUI for local packages, OPM for external packages. They both can install many packages at one go but it is an implementation detail of a GUI, nothing to do with the underlying package graph code.
The benefit will be good and elegant SW design! The current integration is a poorly stitched-in afterthought.
Think of my example TAChartBgra package. A user gets an error for missing package. At the same time he can see it is available in OPM. He thinks "this system is poorly designed" and yes he is right.

Quote
Another benefit is that all the packages are in one place, with the latest updates available you don't have to go through the maintainers site.
Yes, it is the benefit of an online package manager. It is the whole point of having OPM.
Yet that benefit does not reduce the need for integration anyhow.
We can even create more GUIs for various tasks with packages if need be. They all must integrate through a proper API.
Again, I am not asking you to do it. I will look at it later.

Quote
PS: Before anything somebody must implement that fpc based cgi/fastcgi, so the database server can be used for maintaining the main repository + implement the voting system.
This is a separate and independent project from the package system integration.
Title: Re: Online Package Manager
Post by: balazsszekely on December 24, 2016, 06:26:48 pm
@Juha
I'm not confusing anything, just I know how OPM works and studied Mattias code enough to tell you the integration are you talking about is an extremely difficult one.  Feel free to implement whatever you like, but please leave the current OPM system intact so I can keep developing. Still a lot of features to implement.

PS: Merry Christmas to all.
Title: Re: Online Package Manager
Post by: tk on December 28, 2016, 12:31:07 pm
Tested the OPM under Win, Linux and OSX, works very well.

Ideas for future:
1. OPM already preinstalled in Lazarus (to save one Lazarus rebuild for installing the OPM).
2. Manage packages listed in 'available for installation' list box with OPM and delete them from Lazarus distribution (to keep Lazarus distribution smaller).
Title: Re: Online Package Manager
Post by: balazsszekely on December 28, 2016, 03:06:01 pm
@tk
Quote
1. OPM already preinstalled in Lazarus (to save one Lazarus rebuild for installing the OPM).
OPM contains a third party component(VirtualStringTree) so it cannot be preinstalled in Lazarus yet, VST must be added first.
Quote
2. Manage packages listed in 'available for installation' list box with OPM and delete them from Lazarus distribution (to keep Lazarus distribution smaller).
Good idea, though I'm not the one who decide this.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 29, 2016, 02:13:01 pm
OPM contains a third party component(VirtualStringTree) so it cannot be preinstalled in Lazarus yet, VST must be added first.
You have the VirtualStringTree fork there already. It could be included in BigIde in future.
This becomes a question before the next major release ( 1.8 ). Trunk users will install it separately anyway.

Quote
Quote
2. Manage packages listed in 'available for installation' list box with OPM and delete them from Lazarus distribution (to keep Lazarus distribution smaller).
Good idea, though I'm not the one who decide this.
I moved the Industrial package. Other packages must be discussed.
Integration of available online packages with the Lazarus package system is equally important. Now the user experience is confusing.

GetMem, I tried to send you an Opkman package but mail servers rejected it as dangerous. I tested with 2 different mail accounts, one being GMail. We must find a reliable way to transfer the files ASAP!
To me the FTP server sounded very good. Write access to everybody, then an admin publishes packages that he approves. If there is too much garbage/spam then we think again. Easy peacy...

Now I attach the files here. I had to rename the .json file to .txt because it was rejected also here. Please add to online repository.
How did other people manage to send you files?
Title: Re: Online Package Manager
Post by: lainz on December 29, 2016, 02:20:08 pm
Quote
How did other people manage to send you files?

SourceForge, GitHub, personal website
Title: Re: Online Package Manager
Post by: JuhaManninen on December 29, 2016, 02:25:17 pm
SourceForge, GitHub, personal website
Ok, I read the instructions poorly in
 http://wiki.freepascal.org/Online_Package_Manager#Create_repository_package
It says: "Upload somewhere the files and send the link to getmem1@gmail.com".
Anyway, it should be made easier. Upload to a server directly from Opkman with a click.
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 02:41:08 pm
I moved the Industrial package. Other packages must be discussed.
By sheer coincidence I used one of the Industrial package components for the first time today in a project.  Not much documentation, but nice controls.  Are they maintained?
Title: Re: Online Package Manager
Post by: JuhaManninen on December 29, 2016, 03:03:40 pm
Are they maintained?
Not very actively but I put my name on the wiki page as a maintainer.
Code for often used controls was collected from around and cleaned to make this package. Some more controls can be added but it should remain light.
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 06:17:07 pm
@Juha
Quote
You have the VirtualStringTree fork there already. It could be included in BigIde in future.
This becomes a question before the next major release ( 1.8 ). Trunk users will install it separately anyway.
Ok. This is good news. In the devlist there was a discussion about adding VST to Lazarus. After that I can remove the dependencies from OPM. This would be the best solution in my opinion.

Quote
GetMem, I tried to send you an Opkman package but mail servers rejected it as dangerous. I tested with 2 different mail accounts, one being GMail. We must find a reliable way to transfer the files ASAP!
To me the FTP server sounded very good. Write access to everybody, then an admin publishes packages that he approves. If there is too much garbage/spam then we think again. Easy peacy...
Marc is very strict about the upload policy, he does not allow any public upload to the main repository(I agree with him, it's too risky). First we have to implement that pascal cgi/fastcgi or it's php equivalent. Until then we can use my own personal ftp server, but here comes the annoying part, fpc does not have any native component to send ftp. In order to implement the feature, I have to add another third party component. The code is ready, I did it with indy, works well, but I really don't want to add one more component, so I did not commit the changes. Another solution is to upload the files to a free web server. This can be done with fphttpclient, the implementation is almost ready.

Quote
Now I attach the files here. I had to rename the .json file to .txt because it was rejected also here. Please add to online repository.
Thanks. I will add it soon to the main repository.

Also please write down in pm or here your idea about linking the two package system. Consider this: OPM is not loaded yet, however the package graph or another package functionality must access the online packages. To do this, it has to start one of OPMs  thread and through a callback function receive the data when arrives. This cannot be done only through packageintf. How do you plan to implement it, without moving a part of the code inside packager folder.

PS: I added IndustrialStuff to main repository.
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 06:27:36 pm
Another solution is to upload the files to a free web server. This can be done with fphttpclient, the implementation is almost ready.
How about a newly-created SourceForge OPM_CCR project?  All the heavy lifting (including virus-scanning) is done for you.
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 06:35:35 pm
@minesadorada
How do you plan to upload the files(from OPM) to source forge? FTP? HTTP? Whatever method you choose you have to provide a username and password, since Lazarus is open source everyone can read the password. How do you plan to solve this issue? 
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 06:48:18 pm
@minesadorada
How do you plan to upload the files(from OPM) to source forge? FTP? HTTP? Whatever method you choose you have to provide a username and password, since Lazarus is open source everyone can read the password. How do you plan to solve this issue? 
Simple.  In order to contribute a new component, you must register a SourceForge account.  This account is then added to the OPM_CCR project via an email to the OPM moderator then added (as 'developer') in order to upload files.
The OPM moderator has an 'admin-level' account in SF OPM_CCR so can control it.

The advantage is:  this already has worked for the Lazarus ccr SF project - that's where you got most of your components from.

The OPM_CCR repository acts as a 'sandbox' whereby the OPM moderator gets to decide what to include in the main repository.  It also acts as an 'update' URL for component developers to upload their update jsons/zips.

Why re-invent the wheel?

All of the above could be GitHub or Sourceforge - both are free and reliable.

The OPM instructions become: 'Make a Sourceforge account (free) and send me your SF username to add to the OPM_CCR project'

Juha's idea to directly upload from OPM is not a good one IMHO.  A component developer is perfectly capable of making a SF/GitHub account and using svn version control.
Component developers can use svn to update components via SF as I do.

I have practical experience with OPM now, and the only missing component (forgive the pun) in the chain is the initial component creation/upload to OPM.

Subsequent updating/version control is dealt with really well in the current incarnation.
Title: Re: Online Package Manager
Post by: lainz on December 29, 2016, 06:54:57 pm
I agree with minesadorada, GitHub or SourceForge is the place to share code.

Anyone can create a new repository in their own accounts and then send you the mail (like I did for all my packages).

The thing that you can automate is the sending of the mail inside the OPM.
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 07:10:03 pm
Anyone can create a new repository in their own accounts and then send you the mail (like I did for all my packages).
My point is: they don't need to create a repository outside of the OPM_CCR one.  All they need is a SF username and OPM_CCR access for uploads and svn commit.  Their 'stable_release' code is held in OPM_CCR.  If they want to copy it from some other repository, that's not part of the OPM equation.

All the OPM 'action' is in the OPM_CCR SF repository under svn version control.  It is however a 'sandbox' and no-one but the OPM moderator can alter the official online repository.  Direct uploads would be a disaster-in-waiting.

I stress 'version control' because I feel this essential to successful OPM deployment in Laz 1.8, and @GetMem has rightly handled it well for installation and updates.
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 07:13:07 pm
We discussed this before, if a login system must be used then better implement our own and host it in the Lazarus server. Using a third party hosting doesn't look to good in my opinion, even if sourceforge and github are more then professional services. It's like microsoft servers running on linux not IIS.
Until somebody implements the login system we need a temporal solution, even if it's not 100% secure.
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 07:18:30 pm
We discussed this before, if a login system must be used then better implement our own and host it in the Lazarus server. Using a third party hosting doesn't look to good in my opinion, even if sourceforge and github are more then professional services. It's like microsoft servers running on linux not IIS.
Until somebody implements the login system we need a temporal solution, even if it's not 100% secure.
Fair enough - I sort-of agree.  But a SF-based system can easily be migrated when resources are available.  I can't see your objection to a 3rd-party supplier like SF or GitHub as important enough to delay setting up an initial system.  As I have said before, CCR has been hosted by SF for ages without complaint and it formed the basis for the initial OPM packages.

The assumption I would question is:  Why is a Lazarus server more 'professional' than a SourceForge server?  Both are open-source providers.  Which would you trust more if you were new to the Lazarus project, and which could you be more sure to continue to host your component code in 10 year's time?
'More professional' is an assumption that doesn't apply to everyone.

All this only applies to a 'sandbox'.  The 'real' OPM server should be in-house, of course.
Title: Re: Online Package Manager
Post by: lainz on December 29, 2016, 07:20:23 pm
What do you need?

A place to upload all zip + json packages and then be reviewed?

A place to upload all zip + json and automatically added to OPM?

Also if is the first, you will be the only one reviewing?
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 07:27:30 pm
@lainz
The first one, personally I would prefer a database, it's also useful for the voting system + other stuff. After a login everyone can upload packages(zip + json + updatejson), but the packages are only visible/downloadable after moderation. A few, trusted users will have reviewing rights. I prefer not to reviewing at all, since I'm busy with other things.

minesadorada
Quote
The assumption I would question is:  Why is a Lazarus server more 'professional' than a SourceForge server?  Both are open-source providers.  Which would you trust more if you had never heard of the Lazarus project, and which could you be more sure to continue to host your code in 10 year's time?
Probably the servers are less professional since it's an open source project with limited founding, but that's the whole point, if we manage to make a pascal based, safe login/package managment system, lazarus/fpc would look more professional to other people
Title: Re: Online Package Manager
Post by: lainz on December 29, 2016, 07:31:34 pm
Ok. We know what you need.

Sorry for my lack of knowledge, a database can contain zip files and json files?

The language you want to do the server side is FPC or PHP for example? ok you edited your message, it should be FPC
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 07:44:31 pm
@lainz
Quote
Sorry for my lack of knowledge, a database can contain zip files and json files?
Blob fields can contain any binary format.

Quote
The language you want to do the server side is FPC or PHP for example?
If I had the possibility to choose php, the loging system would be long implemented. However some core developer insist to be fpc as a showcase. I have little experience coding server side stuff with fpc,  I hopping somebody with more experience will help me. Another solution is to learn it myself, but since my time is limited the progress will be slow.
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 07:48:07 pm
Probably the servers are less professional since it's an open source project with limited founding, but that's the whole point, if we manage to make a pascal based, safe login/package managment system, lazarus/fpc would look more professional to other people
Well, I guess it's what I argued for many posts ago on this thread, so I do agree.   Good luck with implementing as secure and user-friendly a system in-house as SourceForge before Laz1.8 comes out.  You know that SF gives you a free online DB - not that it would be needed for the sandbox system as I proposed.

I keep stressing it's a 'dual' system.  The sandbox in Sourceforge, but the 'real' server written in pascal and hosted in-house (this would include the voting system and DB)  The best of both worlds, with all the security risks and version control faffle borne by SourceForge and administered by a trusted person who is the only one with access to the 'real' server.
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 07:57:03 pm
@minesadorada
As a temporary solution we can use sourceforge, but without a login system. We need a public account, with limited storage place(100 Mb), where everyone can upload files, but only 1-2 person can delete. The upload must be done through OPMs "Create repository package" dialog? Forget the secure part, I know is not secure as a temporary solution is ok.


Quote
I keep stressing it's a 'dual' system.  The sandbox in Sourceforge, but the 'real' server written in pascal and hosted in-house (this would include the voting system and DB)  The best of both worlds, with all the security risks and version control faffle borne by SourceForge and administered by a trusted person who is the only one with access to the 'real' server.
Yes, this can be done. Move all the possible crap to sourceforge, and keep just the links in a db located in lazarus server + voting system + users. 
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 08:05:11 pm
@minesadorada
As a temporary solution we can use sourceforge, but without a login system. We need a public account, with limited storage place(100 Mb), where everyone can upload files, but only 1-2 person can delete. The upload must be done through OPMs "Create repository package" dialog? Forget the secure part, I know is not secure as a temporary solution is ok.
I think you are distracted by automation.  Why should OPM manage the upload?
The only automation OPM could usefully do is send an email with the SF username to add to the OPM_CCR project.

There is a HUGE disadvantage to the SF temporary solution which I have not mentioned.  If you are have 'developer' access, you could potentially alter other OPM_CCR menber's code.  But this has been true for the SF CCR repository for ages, and it hasn't resulted in chaos.

I could potentially mess up the entire CCR with a careless commit, and could all the others with a CCR SF account - but it has never happened!

Investigate the SourceForge permissions system for file upload and svn access - it's better than you think.
If you can make a component in Laz/fpc you can surely manage version control and uploading to a SF 'sandbox' project!  No need for OPM to hold your hand..
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2016, 08:09:39 pm
Quote
The only automation OPM could usefully do is send an email with the SF username to add to the OPM_CCR project.
There is no native component to send mails in fpc/lazarus. I cannot use third party components since OPM is part of lazarus.
Title: Re: Online Package Manager
Post by: minesadorada on December 29, 2016, 08:14:24 pm
Quote
The only automation OPM could usefully do is send an email with the SF username to add to the OPM_CCR project.
There is no native component to send mails in fpc/lazarus. I cannot use third party components since OPM is part of lazarus.
@GetMem
Understood.  A dialog can do the job though, so not a showstopper.  We have to assume a component developer is not an idiot.  Too much automation is not always desirable :)

As a non cutting-edge Laz developer, I can handle getting a SF account, Installing SVN/TortoiseSVN and uploading my source with an OPM json for approval - I can even handle updates (thanks to my groovy GUI).

What I'm saying is - if I can do it - anyone can and if they can't, maybe they are not the kind of developer to reliably maintain an OPM component in Laz1.8.

There are dozens of components in SF ccr and some are in active development even today.  It works; so current active component developers seem to cope with SF svn.  The proof is in the pudding (as they say).  The change would be simple - instead of the SF CCR repository, set up an OPM_CCR repository and clone the current contents.  Then advertise via OPM - access to component developers as their definitive repository for stable versions to include in OPM.  A risk-free strategy.

I realise that the current 40+ components in OPM have been chosen for stability rather than maintainability, but the next 40 OPM components need to be judged by different criteriia.  I wrote CryptIni specifically to test the OPM system, so I have some experience to offer.

I would suggest that your main worry is being too busy to un-vet a crap component that doesn't compile and is full of bugs that will never be fixed.  This could happen with an over-automated system, and would reflect badly on Lazarus 1.8.  I have no idea what a solution for that would look like but my 'SF sandbox' proposal minimises the chance - proposed components 'sit there' until the OPM moderator has time and energy to vet them.

@Juha's ideas are sound if applied to the in-house server.  I am suggesting an extra 'sandbox' layer for security and maintainability and above all - to maintain the Lazarus reputation for solid bug-free built-in components.
Title: Re: Online Package Manager
Post by: lainz on December 29, 2016, 09:11:49 pm
@lainz
Quote
Sorry for my lack of knowledge, a database can contain zip files and json files?
Blob fields can contain any binary format.

Quote
The language you want to do the server side is FPC or PHP for example?
If I had the possibility to choose php, the loging system would be long implemented. However some core developer insist to be fpc as a showcase. I have little experience coding server side stuff with fpc,  I hopping somebody with more experience will help me. Another solution is to learn it myself, but since my time is limited the progress will be slow.

Thanks for the clarification, I will learn databases maybe the next year in university.

Of course PHP is designed specifically for that kind of websites.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 30, 2016, 12:54:48 am
All the OPM 'action' is in the OPM_CCR SF repository under svn version control.  It is however a 'sandbox' and no-one but the OPM moderator can alter the official online repository.  Direct uploads would be a disaster-in-waiting.
I stress 'version control' because I feel this essential to successful OPM deployment in Laz 1.8, and @GetMem has rightly handled it well for installation and updates.
Now there is a misunderstanding somewhere. The only task now is to transfer a package generated by the Opkman to the server repository, through the admin's approval.
This transfer does not require version control. The original sources of those packages are typically under version control but that is a different topic.
Thus I don't see any reason why SourceForge or similar should be used as a "sandbox", a transfer area. DropBox or Google Docs or whatever would suit better if it must be a public commercial provider.
BTW, nobody has suggested direct upload to the final repository. The discussion is about a transfer area where Opkman could automatically move packages, to be inspected later by admin.

Quote from: minesadorada
I would suggest that your main worry is being too busy to un-vet a crap component that doesn't compile and is full of bugs that will never be fixed.  This could happen with an over-automated system, and would reflect badly on Lazarus 1.8.  I have no idea what a solution for that would look like but my 'SF sandbox' proposal minimises the chance - proposed components 'sit there' until the OPM moderator has time and energy to vet them.

@Juha's ideas are sound if applied to the in-house server.  I am suggesting an extra 'sandbox' layer for security and maintainability and above all - to maintain the Lazarus reputation for solid bug-free built-in components.
No, we don't need another layer for security and maintainability. We already have such a layer, namely a human inspection.
In the beginning many people wanted to have a fully automatic Delphinus-style system because only it would be flexible enough. Now you think even a controlled delivery through admin moderation is not enough?

The packages delivered are not part of Lazarus, they are 3rd party packages. The admin's duty is not to rate them. That's why there will be a rating system. Having some lower quality packages is part of reality.

Whatever server is used for the temporary transfer, a single public account / password should be enough initially. Later it can be improved.
I didn't know there is no FTP protocol in FPC libs, but indeed HTTP works equally well.

If I had the possibility to choose php, the loging system would be long implemented. However some core developer insist to be fpc as a showcase. I have little experience coding server side stuff with fpc,  I hopping somebody with more experience will help me. Another solution is to learn it myself, but since my time is limited the progress will be slow.
No, I don't really insist it. I only said I would like to see an FPC solution. I was hoping somebody else will join and do an initial version. Maybe not. :(
If nobody does it, please feel free to use PHP.
Title: Re: Online Package Manager
Post by: JuhaManninen on December 30, 2016, 01:12:50 am
Also please write down in pm or here your idea about linking the two package system. Consider this: OPM is not loaded yet, however the package graph or another package functionality must access the online packages. To do this, it has to start one of OPMs  thread and through a callback function receive the data when arrives. This cannot be done only through packageintf. How do you plan to implement it, without moving a part of the code inside packager folder.
PackageIntf must be extended to query / pass information about available online packages.
A possible strategy :
1. Initially OPM registers itself with a new API call and provides a callback function for further instructions.
2. The IDE later requests for a list of packages. This is an asynchronous call, no waiting.
3. OPM starts its thread and gets the list of packages. When ready, it passes it to the IDE using another new API call.

Another possible strategy :
Just do the phase number 3., get available packages without waiting instructions and pass them to IDE.

Maybe some code should be moved to Lazarus main sources but nothing related to web protocols or threading.

P.S. This thread has been read ~ 30200 times. OMG, we are famous! :)
Title: Re: Online Package Manager
Post by: balazsszekely on December 30, 2016, 09:46:31 am
Quote
Another possible strategy :
Just do the phase number 3., get available packages without waiting instructions and pass them to IDE.
Passing the online packages to the IDE through packageintf is not the problem. I already do something similar when I compile/install packages. The question is:
on which part of IDE loading do you plan to initialize OPM and how? Now OPM is dormant until you press the "Online package manager" menu item. The download of package info has to be done safely, in a separate thread, because if something goes wrong(main repository is offline for example) the main IDE gets blocked. This is my main concern + the incompatibility between the two package system. Yes, translating between the two is possible but is non-trivial operation.

PS: As an initial step please make a patch(don't commit it, just send it to me), where the SerializablePackages class(opkman_serializablepackages.pas) is created from the main IDE, so I can run a few tests. From then I will make all the other implementation since I'm familiar with OPM, help of course always welcomed.
Title: Re: Online Package Manager
Post by: balazsszekely on December 30, 2016, 10:07:24 am
@minesadorada
Quote
We have to assume a component developer is not an idiot.  Too much automation is not always desirable :)
As a non cutting-edge Laz developer, I can handle getting a SF account, Installing SVN/TortoiseSVN and uploading my source with an OPM json for approval - I can even handle updates (thanks to my groovy GUI).
What I'm saying is - if I can do it - anyone can and if they can't, maybe they are not the kind of developer to reliably maintain an OPM component in Laz1.8.
Believe it or not the vast majority of the feedback I got until now, is about simplifying the creation of repository packages/update JSON. According to some users the process is too complicated.
Title: Re: Online Package Manager
Post by: lainz on January 01, 2017, 01:00:11 pm
About the complexity of making a new package, is the idea that "you're doing it wrong" maybe one has, so I sent you all the links, and you made all of them  :)
Title: Re: Online Package Manager
Post by: balazsszekely on January 01, 2017, 07:51:05 pm
@lainz
Quote
About the complexity of making a new package, is the idea that "you're doing it wrong" maybe one has, so I sent you all the links, and you made all of them
I understand that feeling, but even if somethings goes wrong, no harm is done, so nothing to worry about.
Title: Re: Online Package Manager
Post by: lainz on January 01, 2017, 08:57:20 pm
Ok!

Another thing I see in lazarus is that is full of 'packages' menus and windows. I think the best is the online one you did, if in a future all of them can be combined in a single package utility will be the best. Hard isn't it? but the best =)
Title: Re: Online Package Manager
Post by: balazsszekely on January 04, 2017, 02:59:45 pm
With r. 53885 is possible to submit packages directly to a remote server(see screenshot). Please send any package you like, in the next 48 hours I will ignore them, because for now we only testing the new functionality. I also updated the wiki.


Title: Re: Online Package Manager
Post by: lainz on January 04, 2017, 04:27:28 pm
You work fast  8)
Title: Re: Online Package Manager
Post by: minesadorada on January 04, 2017, 05:55:45 pm
I gave it a try.  The process isn't yet intuitive.


I chose a folder, and the component was visible in the tree (good)
As soon as I clicked the component root, the [Create] and [Submit] buttons became active (not good, as I hadn't filled in any info yet)
There was no prompt nor information to click the component in order to submit compatibility information (i.e. I would not have known it was there)
I didn't test validation of entered fields

I clicked 'Create' and chose my folder, and that was it - OPM zipped the package then disappeared and I had no chance to [Submit] my created package.
What would have happened if I'd clicked 'Submit' before 'Create'? (see update below)

Ideally the Create Package process would be some kind of Wizard with validated inputs.  (That's why I did the GUI for Update jsons)

=update= I tried again with another package.
This time, after I selected the package folder I clicked [Submit].  OPM prompted me for a Category (good)
OK, so I selected a category and clicked [Submit].

OPM sent it on it's way, so you will now have a 'mystery' package with no information other than its category. (not good)
Title: Re: Online Package Manager
Post by: balazsszekely on January 04, 2017, 07:38:10 pm
@lainz
Quote
You work fast  8)
:D Still a lot of work to do.

@minesadorada
Thanks for testing.
After a while I'm gonna remove the "Create" button. I leave it there until the "Submit" functionality is tested enough(2-3 days max).  No more confusion after that. 

Quote
As soon as I clicked the component root, the [Create] and [Submit] buttons became active (not good, as I hadn't filled in any info yet)
There was no prompt nor information to click the component in order to submit compatibility information (i.e. I would not have known it was there)
Yes, "Create" and "Submit" becomes active, but you cannot send the info if any of the obligatory fields are not completed or the data is invalid. Ok, I can change it tomorrow so the buttons only become active when all the obligatory fields are completed. It's more intuitive.Thanks.

Quote
Ideally the Create Package process would be some kind of Wizard with validated inputs.  (That's why I did the GUI for Update jsons)
All the necessary fields are validated, you should check the source if you don't believe me. Yes the package can be send without description, author, license. But the lpk files also can exists without this fields. It tells you a lot about the package maintainer, but I cannot force a license or a description for a package that is not mine. A few posts ago you sad I'm to obsessed with automation(ok, maybe I'm  :D), but apparently you also want to validate everything.

Quote
OPM sent it on it's way, so you will now have a 'mystery' package with no information other than its category. (not good)
Here is the JSON I received, perfectly valid, it can be added to the main JSON.
Quote
{
  "PackageData0" : {
    "Name" : "cmdline",
    "DisplayName" : "",
    "Category" : "Other",
    "RepositoryFileName" : "cmdline.zip",
    "RepositoryFileSize" : 29026,
    "RepositoryFileHash" : "540b92403c061068a149a219b9140ee5",
    "RepositoryDate" : 4.2739000000000000E+004,
    "PackageBaseDir" : "cmdline\\/",
    "HomePageURL" : "",
    "DownloadURL" : "",
    "SVNURL" : ""
  },
  "PackageFiles0" : [
    {
      "Name" : "cmdbox.lpk",
      "Description" : "",
      "Author" : "",
      "License" : "",
      "RelativeFilePath" : "",
      "VersionAsString" : "0.0.0.0",
      "LazCompatibility" : "1.6, Trunk",
      "FPCCompatibility" : "2.6.4, 3.0.0",
      "SupportedWidgetSet" : "win32/64, gtk2, carbon",
      "PackageType" : 0,
      "DependenciesAsString" : "LCL, FCL(1.0.0.0)"
    }
  ]
}
Title: Re: Online Package Manager
Post by: minesadorada on January 04, 2017, 10:19:08 pm
Quote
All the necessary fields are validated, you should check the source if you don't believe me. Yes the package can be send without description, author, license. But the lpk files also can exists without this fields. It tells you a lot about the package maintainer, but I cannot force a license or a description for a package that is not mine. A few posts ago you sad I'm to obsessed with automation(ok, maybe I'm  (http://forum.lazarus.freepascal.org/Smileys/ExcellentSmileys1/biggrin.gif (http://forum.lazarus.freepascal.org/Smileys/ExcellentSmileys1/biggrin.gif))), but apparently you also want to validate everything.
Interesting point - there are two kinds of package 'creators'
Type 1. Someone who is simply submitting someone else's package for OPM.
Type 2. A package author.

There are fields which can be left blank - Homepage, DownloadURL, Description
But there are fields which shouldn't: License - what good is an online package without license info?
The compatibility fields shouldn't be guessed IMO.  The info for the package I sent you could be completely wrong - and it wouldn't be my fault, as I never saw what OPM guessed.

So whilst I see your points about the Description, Homepage and DownloadURL (for type 1 submitters)  I think the others need more scrutiny by OPM and can be proactively filled out by either kind of submitter.

Don't take the above as a criticism - I simply reviewed the create process 'as a user' to give you (hopefully) useful feedback. We're all on the same side of making OPM a deserved success.

It's a shame that many package authors in the past didn't bother with descriptions in the lpk for instance, but OPM has an opportunity to prompt for a description in the 'Create' process in an effort to improve things in future.  And.. it doesn't make sense to accept a package for distribution via Lazarus without a license type and guessed compatibility.

I'm not advocating more automation for the sake of it - just a little more 'hand holding' for users new to the interface.  It could save you a lot of grief in the future when people complain about wrong/missing information in OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on January 05, 2017, 09:25:52 am
@minesadorada
Quote
Don't take the above as a criticism - I simply reviewed the create process 'as a user' to give you (hopefully) useful feedback. We're all on the same side of making OPM a deserved success.
Criticism is always good, especially constructive criticism, so feel free to express your views about OPM. I want to keep an open mind about new ideas.

Quote
Type 1. Someone who is simply submitting someone else's package for OPM.
So whilst I see your points about the Description, Homepage and DownloadURL (for type 1 submitters)  I think the others need more scrutiny by OPM and can be proactively filled out by either kind of submitter.
Yes this can happen, but editing the package without the original authors agreement is wrong, especially editing the license. More over, even if I add the possibility to edit the license, the user still can submit wrong data by accident or intentionally. The bottom line is somebody must check each package manually before adding it to the main repository.
I'm not against implementing such a feature, but please note all the changes has to be saved back to the lpk file and this is not implemented yet in OPM. It's not particularly hard to implement, but somebody has to do it first. If you ready to create a patch, I'm more then happy to apply it.

Title: Re: Online Package Manager
Post by: minesadorada on January 05, 2017, 11:59:00 am
No I wouldn't advocate altering a license file.  Instead I advocate OPM not accepting an unlicensed component.

As for description, updating that seems OK if the lpk description is blank.
I'd assumed that the OPM description field was read from the lpk, and then stored elsewhere (in the DB) - this is where the updated version would be - leaving the original lpk unaltered.

As for Laz compatibility, if a component is compatible with (for example) V1.6, it should also be compatible with later versions, surely?  If so, then only the earliest version needs to be stored (as in >=1.6)

In any case I'll take a look at the code and stop making assumptions :)
Title: Re: Online Package Manager
Post by: ttomas on January 05, 2017, 07:51:37 pm
Error with BGRABitmap package LCLPlatformDef not found in BRGAText.pas.
I play with OPM for the first time with fpcupdeluxe/NewPascal
FPC 3.1.1 r52736, Lazarus 1.7
Changing lcl_minor > 6 to 7 solve the problem with manual compile package.

Code: Pascal  [Select][+][-]
  1. uses GraphType, Math, BGRABlend, BGRAUTF8 {$IF (lcl_major > 0) and (lcl_minor > 7)}, LCLPlatformDef {$ENDIF};
Title: Re: Online Package Manager
Post by: balazsszekely on January 05, 2017, 08:59:13 pm
@ttomas
Thanks for reporting the error. LCLPlatformDef was added in Lazarus revision 53711(Dec 8. 2016). So with Lazarus trunk, the condition:
{$IF (lcl_major > 0) and (lcl_minor > 6)} 
should work. Do you have the latest Lazarus? The error only occurs if you revision is smaller then 53711.
Title: Re: Online Package Manager
Post by: minesadorada on January 15, 2017, 09:24:45 am
@GetMem Can you update PoweredBy from ccr (or the update.zip) into the repository please?
It had the same issue with Trunk as LazAutoupdate.  It's fixed now (with LCLPlatformDef), but the repository OPM version won't compile in Trunk, so it's uninstallable.
Version remains at 1.0.4.0
Title: Re: Online Package Manager
Post by: balazsszekely on January 15, 2017, 10:01:37 am
Quote
@GetMem Can you update PoweredBy from ccr (or the update.zip) into the repository please?
It had the same issue with Trunk as LazAutoupdate.  It's fixed now (with LCLPlatformDef), but the repository OPM version won't compile in Trunk, so it's uninstallable.
Version remains at 1.0.4.0
Done.
Title: Re: Online Package Manager
Post by: balazsszekely on January 17, 2017, 01:10:07 pm
Added support for multiple repositories(r. 53961).
Title: Re: Online Package Manager
Post by: minesadorada on January 17, 2017, 01:49:35 pm
Good work!

One OR the other?  Can it not check both with a user-defined priority?

I'm thinking of a component author that keeps dev versions in a private repository, or a corporate user with proprietary modified versions of components in a private repository.

It would be a checkbox option whether to check both of course.
Title: Re: Online Package Manager
Post by: balazsszekely on January 17, 2017, 02:15:20 pm
Quote
One OR the other?  Can it not check both with a user-defined priority?
For now you cannot use more then one repository at the same time, and there is a reason for this: each package(lpk) name must be unique otherwise the system won't work(dependency check, etc). Since I don't have control on what goes into the other repositories, I decided to implement it this way. I could always check for name collision, warn the user, remove duplicates, etc..but for now is not worth the effort, since only one person asked for the possibility to add a personal repository, and the reason was to quickly install private packages. Later the feature can be extended and more then one repository loaded at the same time.
Title: Re: Online Package Manager
Post by: lainz on January 28, 2017, 05:59:37 pm
Hi, do you remember the compilation problems of BGRABitmap on trunk? Well circular fixed that in the master branch of the repository if you want to add the official fix, maybe it differs a bit for these changed lines.

There's still no new version..
Title: Re: Online Package Manager
Post by: balazsszekely on January 28, 2017, 07:03:17 pm
Quote
Hi, do you remember the compilation problems of BGRABitmap on trunk? Well circular fixed that in the master branch of the repository if you want to add the official fix, maybe it differs a bit for these changed lines.
Thanks @lainz, BGRABitmap updated. I also added a few interesting package lately.
Title: Re: Online Package Manager
Post by: lainz on January 28, 2017, 07:50:48 pm
Thanks. Maybe there's a way (of course) to make a website from the JSON file automatically. So there's a website in http://packages.lazarus-ide.org/ instead of that text. I will try to do something, if not at least you get the idea.
Title: Re: Online Package Manager
Post by: balazsszekely on January 28, 2017, 08:40:06 pm
Quote
Maybe there's a way (of course) to make a website from the JSON file automatically. So there's a website in http://packages.lazarus-ide.org/ instead of that text. I will try to do something, if not at least you get the idea
It is in my to do list, but first there are more important issues like:
  - integrate OPM into the package system, a very difficult issue by the way. Ideally it should be ready before 1.8(2.0).
  - implement the voting system
  - create personal repository(almost completed)
Regarding the website I plan to make a responsive page, with thumbnails. Every package will be downloadable via a browser.
Title: Re: Online Package Manager
Post by: lainz on January 28, 2017, 09:28:19 pm
Thankyou. You can try this small attached website?

The template is from here:
https://getmdl.io/templates/index.html (Text heavy webpage)

There's a simple website, is not what you need but you can use it now until you get your website done.
Title: Re: Online Package Manager
Post by: balazsszekely on January 28, 2017, 09:57:06 pm
Actually this is quite nice, thank you @lainz!  :)  I envisioned something similar. Now the packages are also available via browsers.

@all
Please take a look: http://packages.lazarus-ide.org/
 
Title: Re: Online Package Manager
Post by: lainz on January 28, 2017, 10:59:27 pm
Nice! I forget to add the URL's of the packages, you can add them easily if you want.
Title: Re: Online Package Manager
Post by: balazsszekely on January 29, 2017, 08:50:09 am
Quote
Nice! I forget to add the URL's of the packages, you can add them easily if you want.
Ok. I will make a few, small adjustment soon.
Title: Re: Online Package Manager
Post by: minesadorada on January 29, 2017, 10:01:11 am
Perhaps a forum admin will add a link to the website in the main sidebar once it's done.
Title: Re: Online Package Manager
Post by: wp on January 29, 2017, 10:26:50 am
@all
Please take a look: http://packages.lazarus-ide.org/ (http://packages.lazarus-ide.org/)

mbColorLib and jvcllaz are shown without a title.

Can you order by package name or by date of last change (latest change at top)?
Title: Re: Online Package Manager
Post by: balazsszekely on January 29, 2017, 11:00:47 am
Quote
mbColorLib and jvcllaz are shown without a title.
Fixed. Also renamed mbColorLib to MBColorLib and jvcllaz to JVCLLaz, since all the packages begins with upercase in the list. This is just the display name(webpage and OPM tree). I did not touch the zip file or any other part of the package. Hope it's ok, if not I can change it back.

Quote
Can you order by package name or by date of last change (latest change at top)?
I will implement it tomorrow.
Title: Re: Online Package Manager
Post by: wp on January 29, 2017, 11:05:14 am
Hope it's ok, if not I can change it back.
OK, no problem.
Title: Re: Online Package Manager
Post by: balazsszekely on January 30, 2017, 11:56:30 am
Quote
@wp
Can you order by package name or by date of last change (latest change at top)?
Now the packages are ordered by name. I will add more sorting option in the future + a search field: http://packages.lazarus-ide.org/

In the package tree, the newly added packages(<= 31 days) are highlighted by a different icon + the date.
 
Title: Re: Online Package Manager
Post by: wp on January 30, 2017, 12:41:29 pm
Great!
Title: Re: Online Package Manager
Post by: minesadorada on January 30, 2017, 04:41:28 pm
It just gets better...
Title: Re: Online Package Manager
Post by: lainz on February 04, 2017, 11:33:28 pm
Hi GetMem, if you let me I want to implement myself the search for the packages site, I have already a working solution for another project of mine using Material Design Lite that works just fine without using third party libraries.
Title: Re: Online Package Manager
Post by: balazsszekely on February 04, 2017, 11:53:04 pm
@lainz

Feel free to implement whatever you like, my time is very limited nowadays. Just let me know when I have to upload something to the server.
Thank you for your help, it's much appreciated!
Title: Re: Online Package Manager
Post by: lainz on February 05, 2017, 12:53:19 am
@lainz

Feel free to implement whatever you like, my time is very limited nowadays. Just let me know when I have to upload something to the server.
Thank you for your help, it's much appreciated!

Here it is. Feel free to change the About page or anything.
Title: Re: Online Package Manager
Post by: balazsszekely on February 05, 2017, 09:17:25 am
@lainz

Thank you! I uploaded the files to the main repository: http://packages.lazarus-ide.org/

Quote
Feel free to change the About page or anything.
I like the way it is.  ;)
Title: Re: Online Package Manager
Post by: lainz on February 05, 2017, 10:45:25 am
Thanks. One thing that can be optimized is the search, it searches each keyword (separated by single space) in each component element. Is fast, but maybe there's a better way like using a regular expression?
Title: Re: Online Package Manager
Post by: balazsszekely on February 05, 2017, 11:11:11 am
I ran a few test and the search is fast. We only have 58 packages and I seriously doubt we ever go beyond 150-200, for now I don't think we need a more optimized search. I'm not against it though, if somebody wants to implement it.
Title: Re: Online Package Manager
Post by: lainz on February 05, 2017, 11:20:41 am
OK. Is not so smart the search but it does the job of filtering at least.

A thing we should add is a list of the categories in a combobox to click and filter automatically. I will try to add that.
Title: Re: Online Package Manager
Post by: lainz on February 05, 2017, 12:41:10 pm
Here we go :)

Now it has the categories.
https://github.com/lazarusccr/LazarusPackagesRepository

Edit: You can add category 'Panels' to BGRAControls and BGRAControlsFX? These contains panel components.

To BGRAControls also 'Edit and Memos' because it contains edit controls too, 'Labels' if it's the standard label it contains it too. Also 'List and ComboBoxes' that contains too (both). 'Shapes' contains also TBGRAShape. Is a big package  :D

I need to improve the description of my packages, I will upgrade them and I will tell you when is ready.
Title: Re: Online Package Manager
Post by: balazsszekely on February 05, 2017, 02:26:43 pm
Quote
Here we go :)
Now it has the categories.
https://github.com/lazarusccr/LazarusPackagesRepository
Great! Thanks. Repository updated.  :)

Quote
Edit: You can add category 'Panels' to BGRAControls and BGRAControlsFX? These contains panel components.
To BGRAControls also 'Edit and Memos' because it contains edit controls too, 'Labels' if it's the standard label it contains it too. Also 'List and ComboBoxes' that contains too (both). 'Shapes' contains also TBGRAShape. Is a big package  :D
I need to improve the description of my packages, I will upgrade them and I will tell you when is ready.
Sure, just let me know when the packages are ready.


PS: I also post a list with available packages, if somebody knows a package that is not in the list, please let me know.
Code: Pascal  [Select][+][-]
  1. ACS - Audio Components Suite
  2. ATBinHex
  3. ATButtons/ATListbox
  4. ATFileNotif
  5. ATGauge
  6. ATScrollBar
  7. ATSynEdit
  8. BGRABitmap
  9. BGRAControls
  10. BGRAControlsFX
  11. BGRAGames
  12. CalLite
  13. CmdLine
  14. ColorPalette
  15. CryptINI - Crypted TIniFile
  16. DataPort
  17. DCPcrypt
  18. EpikTimer
  19. EyeCandyControls
  20. FileAssociation
  21. FileMenuHandler
  22. Fortes4Lazarus
  23. FortesReport-CE
  24. FPSpreadsheet
  25. HistoryFiles
  26. IndustrialStuff
  27. Indy
  28. JujiboUtils
  29. JVCLLaz
  30. KaajControls
  31. KControls
  32. LainzCodeStudio
  33. LazAutoUpdate
  34. LazBarcodes
  35. LazSerial
  36. LCLExtensions
  37. LNet
  38. LongTimer
  39. MBColorLib
  40. MPlayer
  41. PlaysoundPackage
  42. PlotPanel
  43. PoweredBy
  44. PowerPDF
  45. RichMemo
  46. RingWatch
  47. ScrollText
  48. SMNetGradient
  49. SpkToolbar
  50. Synapse 40
  51. Synapse 40.1
  52. TVPlanit
  53. UEControls
  54. UniqueInstance
  55. VirtualTreeView 4.8.7_R4
  56. VirtualTreeView 5.5.3_R1
  57. WebServiceToolkit
  58. ZeosDBO
Title: Re: Online Package Manager
Post by: lainz on February 05, 2017, 03:13:34 pm
There's UOS
https://fredvs.github.io/uos/

And Bare.Game
https://github.com/sysrpl/Bare.Game

Title: Re: Online Package Manager
Post by: balazsszekely on February 05, 2017, 03:24:00 pm
UOS is a great component, however it does not contain a package file(lpk). Believe it or not OPM cannot handle a package with no lpk files.  :D

I will add Bare.Game.
Title: Re: Online Package Manager
Post by: lainz on February 05, 2017, 03:27:43 pm
I know. We can contact FredVS and tell him if he can add a package file to his project.
Title: Re: Online Package Manager
Post by: balazsszekely on February 05, 2017, 10:53:44 pm
Hi FredVS,

Thank you for the package. I modified the lpk file(hope it's ok), added a description + author name. All the info is taken from your github page: https://github.com/fredvs/uos/. Please check attachment, if something is wrong, let me know.

regards,
GetMem
Title: Re: Online Package Manager
Post by: Fred vS on February 06, 2017, 11:24:58 am
Hi FredVS,

Thank you for the package. I modified the lpk file(hope it's ok), added a description + author name. All the info is taken from your github page: https://github.com/fredvs/uos/. Please check attachment, if something is wrong, let me know.

regards,
GetMem

Hello GetMem.

Ok, perfect, many thanks and wow for your great project.

Fre;D

Title: Re: Online Package Manager
Post by: lainz on February 14, 2017, 04:35:51 pm
We need to thank Martin_fr that added the 'Packages' link into the navigation bar of the forum at the left under 'Lazarus'.

Enjoy the website and OPM!
Title: Re: Online Package Manager
Post by: balazsszekely on February 14, 2017, 05:06:16 pm
Thank you @Martin_fr for adding the link and thank you @lainz for creating the page. I will also try to contribute as time permits.
Title: Re: Online Package Manager
Post by: howardpc on February 14, 2017, 05:08:35 pm
I noticed that the VirtualTreeView 4.3.7_R4 Description entry has two spurious "line1" and "line2" entries at the end of the sentence.
Title: Re: Online Package Manager
Post by: balazsszekely on February 14, 2017, 05:33:28 pm
Quote
@howarpc
I noticed that the VirtualTreeView 4.3.7_R4 Description entry has two spurious "line1" and "line2" entries at the end of the sentence.
Thank you. VirtualTreeView 4.8.7_R4 was one of the first packages added to OPM. I was testing the multi-line capabilities of JSON. Apparently I forgot to remove line1, line2 :D

PS: Fixed!
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 05:54:28 am
I read the topic - well, the first 12 pages - before I decided to post this anyway:

The OPM does not correctly configure itself when used with Fpcupdeluxe.

I do have FPC installed globally. More or less because I couldn't be bothered to remove all FPC related packages.
And OPM thinks that that's all I've got.
No Lazarus.
Even though it should know that it can't be run outside of it.

I could - and I will - configure OPM manually - but using a self-compiled Lazarus/FPC is quite common, isn't it?
Besides, Lazarus knows how it's configured, so can't OPM just ask it?

Have anyone successfully installed and used this with Fpcupdeluxe?
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 06:43:14 am
Hi jacmoe,

I read your post more then once, still I'm not sure what are you after:
Quote
I do have FPC installed globally. More or less because I couldn't be bothered to remove all FPC related packages.
And OPM thinks that that's all I've got.
OPM does not deal with FPC packages only Lazarus packages.

Quote
I could - and I will - configure OPM manually - but using a self-compiled Lazarus/FPC is quite common, isn't it?
Besides, Lazarus knows how it's configured, so can't OPM just ask it?
That's exactly what OPM does. Asks lazarus where the config files are stored and save the newly downloaded/installed packages in the same folder. This way the primary and secondary installs are completely separated.

Quote
Have anyone successfully installed and used this with Fpcupdeluxe?
Yes, I just did. As far as I can tell it works as it should, unless I misunderstood something?
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 07:00:25 am
Move along ..

I was totally wrong - posted about a wrong version of a package manager in the wrong topic.  :-[
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 07:09:14 am
As I said OPM doesn't deal with FPC packages and does not use Inet to download packages. At this point I'm completely lost and I have absolutely no idea what are you talking about.
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 07:41:44 am
Quote
Am I using the right thing?
No.  :)

OPM is this(see attachment). @jacmoe it's ok to be wrong, but next time please don't blame others for your own fault.

PS: I see you deleted your post. Anyway test OPM(the real one) and tell me what do you think.
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 07:45:58 am
The wiki said that "This" sits in Lazarus, but I guess it sits in Trunk Lazarus and not 6.0.3 Lazarus.
Thanks for you patience!

I used the Blaszyk package manager.  ;)

I can definitely see how you can get confused by such irrelevant bug report.

Great to hear that it works with Fpcupdeluxe.
I will try it later.

it's ok to be wrong, but next time please don't blame others for your own fault.
Sometimes it takes time until you realise that you are at fault.
Sorry! Carry on the good work.  :-[ :-X
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 08:21:18 am
So, because Fpcupdeluxe failed to install OPM, probably because it is supposed to be part of Lazarus, I just issued a svn checkout in lazarus/components ..
I opened the package, compiled it, and opened the package install dialog and installed it. Rebuilt Lazarus..
And it is installed!
Settings seems to be alright.
I haven't tried to install anything yet.
Really nice!  :D

Edit:
Castle Game Engine should be in it!
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 08:35:18 am
@jacmoe
I'm glad it's working :). If you find a bug please report it, I will do my best to fix the issue.
Title: Re: Online Package Manager
Post by: JuhaManninen on February 19, 2017, 09:06:57 am
I used the Blaszyk package manager.  ;)
I think I will remove it completely now.
I anticipated confusion (as now happened) and once removed its "global link" so it doesn't show in the Install/Uninstall Packages window, but it got restored.
Blaszyk package manager does not work and nobody has worked on it for many many years.

Quote
Castle Game Engine should be in it!
Please create a package and provide it to GetMem. I still hope in future it can be done with a single click.
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 09:16:15 am
Sorry about the confusion and added drama. :)

I will look into creating OPM packages for Castle if the Castle project managers doesn't beat me to it.

I will also make sure to report bugs, now that I have triple-checked that I am indeed using the right online package manager.

Sounds good that the old Blaszyk package gets removed.
Less confusion is always a good thing.  ;)
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 09:33:31 am
Quote
@jacmoe
Castle Game Engine should be in it!
Agree. Great Engine/Component. I will add it soon to the main repository.

Quote
@Juha
I still hope in future it can be done with a single click.
What do you mean? I added a submit button at least a month ago. It can be done with a single click, or are you referring to something else? 
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 09:34:40 am
He probably means that creating a package is going to take just one click in the future.
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 10:42:57 am
Quote
@jacmoe
He probably means that creating a package is going to take just one click in the future.
That's not possible, when you submit a package you have to do at least two things: select a category and check the lpk's. Anyway the whole process shouldn't take more then 1-2 minutes. I think @Juha talks about the fact that in the past you had to send the packages through mail. This is not true anymore. It can be done with a single click now.

I added Castle Game Engine to main repository.
Title: Re: Online Package Manager
Post by: JuhaManninen on February 19, 2017, 11:07:39 am
What do you mean? I added a submit button at least a month ago. It can be done with a single click, or are you referring to something else?
Oops, sorry. I haven't been following the development all the time.
Submit button sounds good. Makes contributing packages easier and thus more package maintainers will do it in future.

I removed LazarusPackageManager in r54189.
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 11:44:13 am
Quote
Oops, sorry. I haven't been following the development all the time.
Submit button sounds good. Makes contributing packages easier and thus more package maintainers will do it in future.
Things are looking good so far. I received at least 10 package in the last month. New packages are highlighted with a blue lightning icon(see attachment).

Quote
I removed LazarusPackageManager in r54189.
Thanks.
Title: Re: Online Package Manager
Post by: jacmoe on February 19, 2017, 06:03:57 pm
Thanks a lot for adding Castle! ;D

Castle and OPM and Fpcupdeluxe is a Ninja Combination!  :D

New packages are highlighted with a blue lightning icon.
Ah, that makes sense.
I have been trying to figure out the difference between the blue flash / regular package icons for a while.  ;D
Title: Re: Online Package Manager
Post by: lainz on February 19, 2017, 06:49:24 pm
Hi, such a big package the Castle Engine, how many rooms has this Castle  ::)

But seriously I can't install it with FPC trunk and Lazarus trunk.

I get errors when installing it, Internal error 2014081401. This line

Code: Pascal  [Select][+][-]
  1.     Handled := Items[I](Received) or Handled;    

at Castle Messaging unit.

"{ Message system to communicate between native code and Java on Android
  (TMessaging). }"

And maybe I need some android stuff to compile that unit?

Sorry if I'm posting it here, I did that because i'm installing it through OPM. Also I will copy this to the Castle Engine thread.
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2017, 06:58:10 pm
Quote
@jacmoe
Thanks a lot for adding Castle! ;D
You're welcome.

Quote
Ah, that makes sense.
I have been trying to figure out the difference between the blue flash / regular package icons for a while.
Blue lightning icons appears in front of the packages not older then 31 days. You can configure the value from the options though.

@lainz
Quote
But seriously I can't install it with FPC trunk and Lazarus trunk.
I get errors when installing it, Internal error 2014081401. This line
Thanks for the feedback. I only tested with Lazarus Trunk/FPC 3.0/Win7. It works fine. You should contact the package maintainer about the issues in trunk.

Quote
Sorry if I'm posting it here, I did that because i'm installing it through OPM. Also I will copy this to the Castle Engine thread.
No problem. I will run a few test later with Laz/FPC trunk. I just installed a secondary Lazarus with fpcdeluxe, which is a great tool by the way.
Title: Re: Online Package Manager
Post by: lainz on February 19, 2017, 07:06:40 pm
Yes I also have trunk trunk with fpcupdeluxe, combined with OPM is the only way I use lazarus now.
Title: Re: Online Package Manager
Post by: Akira1364 on February 19, 2017, 09:22:29 pm
Hi, such a big package the Castle Engine, how many rooms has this Castle  ::)

But seriously I can't install it with FPC trunk and Lazarus trunk.

I get errors when installing it, Internal error 2014081401. This line

Code: Pascal  [Select][+][-]
  1.     Handled := Items[I](Received) or Handled;    

at Castle Messaging unit.

"{ Message system to communicate between native code and Java on Android
  (TMessaging). }"

And maybe I need some android stuff to compile that unit?

Sorry if I'm posting it here, I did that because i'm installing it through OPM. Also I will copy this to the Castle Engine thread.

It's just a compiler bug, as the way they wrote it should technically work (but obviously doesn't, sometimes.) I replied to your copied post in the announcement thread with a solution I've found to work fine.
Title: Re: Online Package Manager
Post by: esvignolo on February 20, 2017, 03:27:49 am
Very good work with the package manager, something that is essential to make it easier for new developers to know and simplify this task.
I just want to make a small suggestion, i just had an update of a package, but when I selected and installed it, the update still appeared to me even after i had recompiled.
Therefore, my humble suggestion, is to simplify in a single button to update/install and if the repository was different from the official, warn with a message like this:
You Has the latest version of the official repository, do you want to download a new version from the page of the developer?

Greetings and thanks.
Title: Re: Online Package Manager
Post by: lainz on February 20, 2017, 03:55:21 am
Hi, I agree with esvignolo, he was trying to update bgracontrols from external sources.

I know how it works and now he knows too. But for someone that never used it it can give you the impression that is not working.

A suggestion can be, if you already have that version installed, say

bgracontrols 4 installed, and you choose bgracontrols 4 to install again, and at the same time there's an external version available say bgracontrols 4.x (external update), when you click on install a prompt that says 'you want to re-install the same version or update to the external new version?, two buttons [Re-install bgracontrols 4] or [Update to bgracontrols 4.x]'

Or some better approach, I don't know  %)

Thanks again for this excelent tool.
Title: Re: Online Package Manager
Post by: balazsszekely on February 20, 2017, 08:29:39 am
@esvignolo, @lainz
     Thank you for the feedback. I know the update Column/Button is somewhat confusing. Initially, I only wanted a central repository + a tool to easily update the repository. Unfortunately this raises a few security issues. I don't want to go into the details since it was discussed many times before in this thread. So instead we choose the so called "Update" feature, which allows the package maintainer to easily notify a user about a new update. The update feature has at least two drawbacks, beside the confusion:
    1. You have to install the package from the central repository first. Although technically OPM can install directly from an update page, it's not allowed because of the possible unresolved dependency issues
    2. It's not 100% safe. I mean a package maintainer with bad intention, it can(at least in theory) install a malware, especially under windows
On the other hand the update feature also has a great advantage: it removes the workload from the central repository and pass it to the package maintainers, this way making the whole system sustainable in the long run.

Unifying the Install/Update button(@esvignolo suggestion) I'm not sure will solves the problem, in my opinion it will lead to even more confusion. The user will have no idea from where the package is installed(repository or update). Now at least you know(again I agree it's a little bit confusing), especially if your read the wiki page(section "Difference between download/install/update"): http://wiki.freepascal.org/Online_Package_Manager#Difference_between_download.2Finstall.2Fupdate
Title: Re: Online Package Manager
Post by: lainz on February 20, 2017, 07:45:41 pm
It's ok everything needs some user learning btw, is not too hard.

Edit: I know everything was discussed so keep going.
Title: Re: Online Package Manager
Post by: GAN on February 24, 2017, 12:48:05 am
Hi, I don't found On Line Package Manager on http://packages.lazarus-ide.org/ can you give me a direct download link?

Thank you.
Title: Re: Online Package Manager
Post by: jacmoe on February 24, 2017, 01:19:44 am
Check the wiki for how to get it: http://wiki.freepascal.org/Online_Package_Manager

Edit:
If it's not in ($LazarusDir)/components/onlinepackagemanager then you need to get it from SVN.
Go to ($LazarusDir)/components and run this command:
Code: Pascal  [Select][+][-]
  1. svn co http://svn.freepascal.org/svn/lazarus/trunk/components/onlinepackagemanager onlinepackagemanager

If it is there, skip the svn check out.

Now, open the package, compile it, and install it in the Lazarus Install Packages dialogue.

See the wiki  :)
Title: Re: Online Package Manager
Post by: GAN on February 24, 2017, 02:06:46 am
Yes, I saw the wiki, but I don't use SVN, so, I need a  link to a for a zip if it is posible.

Thanks.
Title: Re: Online Package Manager
Post by: molly on February 24, 2017, 02:11:06 am
Yes, I saw the wiki, but I don't use SVN, so, I need a  link to a for a zip if it is posible.
ftp://ftp.freepascal.org/pub/lazarus/snapshots/lazarus-1.7-54258-20170224-src.zip

or better yet (in order to not stress the ftp server), surf to https://github.com/graemeg/lazarus and press the download button.
Title: Re: Online Package Manager
Post by: GAN on February 24, 2017, 02:40:13 am
Yes, I saw the wiki, but I don't use SVN, so, I need a  link to a for a zip if it is posible.
ftp://ftp.freepascal.org/pub/lazarus/snapshots/lazarus-1.7-54258-20170224-src.zip

or better yet (in order to not stress the ftp server), surf to https://github.com/graemeg/lazarus and press the download button.

Thanks, but I only need Online Package Manager. I am using Lazarus 1.6 FCC 3.0.0.
Title: Re: Online Package Manager
Post by: molly on February 24, 2017, 02:49:15 am
Yes, I saw the wiki, but I don't use SVN, so, I need a  link to a for a zip if it is posible.
ftp://ftp.freepascal.org/pub/lazarus/snapshots/lazarus-1.7-54258-20170224-src.zip

or better yet (in order to not stress the ftp server), surf to https://github.com/graemeg/lazarus and press the download button.

Thanks, but I only need Online Package Manager. I am using Lazarus 1.6 FCC 3.0.0.
OPM is part of Lazarus. There is no standalone download.
Title: Re: Online Package Manager
Post by: jacmoe on February 24, 2017, 02:54:57 am
Yes, I saw the wiki, but I don't use SVN, so, I need a  link to a for a zip if it is posible.
ftp://ftp.freepascal.org/pub/lazarus/snapshots/lazarus-1.7-54258-20170224-src.zip

or better yet (in order to not stress the ftp server), surf to https://github.com/graemeg/lazarus and press the download button.

Thanks, but I only need Online Package Manager. I am using Lazarus 1.6 FCC 3.0.0.
OPM is part of Lazarus. There is no standalone download.
If 'Lazarus' means 'Lazarus trunk' then: yes.
If not - ie tagged or fixes ' then: no.
Not on my box, it isn't.

So, if the OP does not have trunk, then he must get the trunk of Lazarus, so that he can put OPM into his non-trunk Lazarus source tree. ;)
Title: Re: Online Package Manager
Post by: molly on February 24, 2017, 03:01:20 am
@jacmoe:
I'll be more explicit then  :)
OPM is part of Lazarus 1.7. There is no standalone download.
Title: Re: Online Package Manager
Post by: jacmoe on February 24, 2017, 03:06:49 am
@molly: I know that. But since GAN is using 1.6, he must grab the 'onlinepackagemanager' directory from the source of Lazarus 1.7 (trunk).
I think it is really great that OPM is part of Lazarus now. :D

I am using 1.6.3 and had to check out the opm package directory (from the trunk) too.

You are right: there is no standalone download. And there will never be one, because it is part of Lazarus 1.7 onwards.

The easiest for GAN would be to simply install subversion and do a check out of that directory.
That's the option that is smallest, and takes the least amount of bandwidth.
Title: Re: Online Package Manager
Post by: molly on February 24, 2017, 03:13:03 am
@jacmoe:
And... i understand that  :)

It's GAN who did not got the message.

It would be the same as asking for a separate download for TLabel component. It is part of lazarus so download lazarus in order to get it ;-)

(and in the particular case of OPM you would need lazarus trunk sources for that, exactly where my links pointed to).

fyi: OPM did start out with its own repository.
Title: Re: Online Package Manager
Post by: jacmoe on February 24, 2017, 03:20:40 am
I did exactly the same thing here -> http://forum.lazarus.freepascal.org/index.php/topic,34297.msg238533.html#msg238533 (http://forum.lazarus.freepascal.org/index.php/topic,34297.msg238533.html#msg238533)
I had Lazarus 1.6.3 (IIRC) and just checked out onlinepackagemanager from trunk into lazarus_1.6.3_source/components/onlinepackagemanager.
So, he must install subversion if he wants the easiest method.
Or, alternatively, download the zip ball from Github, extract it and copy the 'onlinepackagemanager' directory over to the components source directory.

Edit: I think we agree with each other, Molly  ;)
Title: Re: Online Package Manager
Post by: GAN on February 24, 2017, 05:27:17 am
OK now I understand, thanks for the explanation and sorry for my confusion.

Best regards.
Title: Re: Online Package Manager - own config settings?
Post by: CharlyTango on March 08, 2017, 02:35:15 pm
HI,

I'm facing the challenge to sync my the packages in different Lazarus installations  between two desktops and a notebook.
Furthermore there are several Lazarus versions per desktop or notebook to sync.
Is there a possibility to tell OPM to use some kind of configuration file to install the same Packages into all my Lazarus installations without chosing the Packages by hand ?

I was thinking of a config file which is synched by Dropbox or others and every Lazarus installation installs the fitting versions of the needed packages ;)

THX in advance
Title: Re: Online Package Manager
Post by: balazsszekely on March 08, 2017, 04:20:47 pm
1. You check all the packages you wish to install, save it to a config file.
2. Next time you load the checks from the same ini, so you don't have to check them again manually

 Did I understand correctly?
Title: Re: Online Package Manager
Post by: CharlyTango on March 09, 2017, 10:35:57 am
Yes you understood correctly.

But there should be a possibility to tell OPM where this (kind-of-)ini file is located. (name and path)

This way it would be possible to sync the ini-file automatically by Dropbox or GooglDrive etc.


BTW... is there a possibility that OPM updates itself in an other way than a SVN download.
Could OPM be a simple package which is updated by OPM itself?

Regards
Title: Re: Online Package Manager
Post by: balazsszekely on March 09, 2017, 09:51:20 pm
Quote
Yes you understood correctly.
But there should be a possibility to tell OPM where this (kind-of-)ini file is located. (name and path)
This way it would be possible to sync the ini-file automatically by Dropbox or GooglDrive etc.
It's implemented in trunk. Just right click the tree, then save/load the ini file.

Quote
BTW... is there a possibility that OPM updates itself in an other way than a SVN download.
Could OPM be a simple package which is updated by OPM itself?
Unfortunately no. It's in the todo list though.
Title: Re: Online Package Manager
Post by: minesadorada on March 20, 2017, 01:04:54 pm
I just updated Lazarus and FPC from SVN and rebuild IDE now hangs on the statements (in OPM.opkman_downloader)

Code: Pascal  [Select][+][-]
  1. FHTTPClient.Terminate;

Lazarus SVN build: 54442M
Title: Re: Online Package Manager
Post by: balazsszekely on March 20, 2017, 09:10:03 pm
Hi minesadorada,

OPM has changed a lot lately, however I cannot reproduce the error with Lazarus/FPC trunk(r. 54449 and r. 35631). I did try to download/install as many package as possible, but no hangs, no errors. I only tested on win7 though.
Title: Re: Online Package Manager
Post by: JuhaManninen on March 20, 2017, 09:48:51 pm
minesadorada, usually a clean build helps after code has been moved and reorganized.
Tools -> Configure Build Lazarus -> "Clean all".

I don't get errors either.
Title: Re: Online Package Manager
Post by: minesadorada on March 21, 2017, 09:14:02 am
OK Thanks guys - I'll investigate.
Title: Re: Online Package Manager
Post by: AlexTP on March 24, 2017, 07:23:37 am
Hi
In mantis, you ll find n my fixes/patches:
http://mantis.freepascal.org/view.php?id=31495
http://mantis.freepascal.org/view.php?id=31497
http://mantis.freepascal.org/view.php?id=31498
http://mantis.freepascal.org/view.php?id=31499
http://mantis.freepascal.org/view.php?id=31501

Can you apply pls?
Title: Re: Online Package Manager
Post by: balazsszekely on March 24, 2017, 07:32:54 am
Hi Alextp,

Sorry for the delay, I was very busy lately. I will apply them as soon as possible. Thank you for the patch!

PS: Applied, except one where a little modification is needed.
Title: Re: Online Package Manager
Post by: Rayvenhaus on March 24, 2017, 01:41:50 pm
Running Lazarus 1.6.2, FPC 3.0.0, when compiling latest OPM from SVN, I get the following error:

Compile package OnlinePackageManager 1.0: Exit code 1, Errors: 1
opkman_mainfrm.pas(39,16) Fatal: Cannot find PackageLinkIntf used by opkman_mainfrm of package OnlinePackageManager.
Title: Re: Online Package Manager
Post by: Thaddy on March 24, 2017, 02:14:35 pm
You are using unsupported versions: Laz is at 1.6.4 and fpc is at 3.0.2.
Title: Re: Online Package Manager
Post by: Rayvenhaus on March 24, 2017, 02:47:24 pm
Ok, just upgraded to latest version, Lazarus 1.6.4 and FPC 3.0.2 and I still get the same error when compiling OpMan.  Where do I find the missing package needed to compile OpMan?
Title: Re: Online Package Manager
Post by: JuhaManninen on March 24, 2017, 03:57:21 pm
Where do I find the missing package needed to compile OpMan?
In Lazarus trunk. The OpMan is now part of Lazarus sources anyway, it is developed together with rest of the trunk.
Already next month Lazarus 1.8 may be forked. Then you can use also fixes_1_8 branch.

I know OpMan has supported older Lazarus versions with IFDEFs. I don't have objections if somebody wants to add IFDEFs but it is quite unusual. If somebody wants to use latest development from trunk, he can download trunk. This applies to ProjectGroups and any other package in trunk as well.
Title: Re: Online Package Manager
Post by: Rayvenhaus on March 24, 2017, 04:02:33 pm
I am using the latest released versions of Lazarus and FPC (1.6.4 & 3.0.2) and I still get the error when adding in OPM
Title: Re: Online Package Manager
Post by: balazsszekely on March 24, 2017, 04:15:49 pm
@Rayvenhaus

You have two choices:
1. Use a slightly older version, you can download from here(zip): https://drive.google.com/file/d/0B9Me_c5onmWoLUJmYUNwc0ItVkk/view?usp=sharing
2. Wait for Laz 1.8, it's just around the corner
Title: Re: Online Package Manager
Post by: balazsszekely on March 24, 2017, 04:20:18 pm
Quote
@Juha
I know OpMan has supported older Lazarus versions with IFDEFs. I don't have objections if somebody wants to add IFDEFs but it is quite unusual. If somebody wants to use latest development from trunk, he can download trunk. This applies to ProjectGroups and any other package in trunk as well.
I don't think it's worth ifdef-ing the latest changes. After Lazarus 1.8 is forked, we drop support for older versions. I can upload somewhere a zip with an older OPM, in case somebody insist to stay with the 1.6 series.
Title: Re: Online Package Manager
Post by: Rayvenhaus on March 24, 2017, 04:47:56 pm
So, the current version of OPM does not work with the latest released version of Lazarus? I either have to roll back a version of Lazarus or wait till a new version of Lazarus is released?
Title: Re: Online Package Manager
Post by: Thaddy on March 24, 2017, 04:54:38 pm
It's a matter of hours or days rather than weeks if I understand the Laz devs correctly.
Title: Re: Online Package Manager
Post by: JuhaManninen on March 24, 2017, 04:56:47 pm
@Rayvenhaus, the issue was quite clearly explained by myself and by GetMem.
GetMem even copied a compatible version to a server for you.

It's a matter of hours or days rather than weeks if I understand the Laz devs correctly.
What is a matter of hours or days?
Title: Re: Online Package Manager
Post by: balazsszekely on March 24, 2017, 05:00:34 pm
Quote
So, the current version of OPM does not work with the latest released version of Lazarus?

Yes.

Quote
I either have to roll back a version of Lazarus or wait till a new version of Lazarus is released?
No. Please see my previous post. You can download a version of OPM from march 14. It's basically the same version(no new function added). After march 14 OPM is heavily refactored in attempt to link the two package system together.
Title: Re: Online Package Manager
Post by: wp on March 29, 2017, 08:21:18 pm
I made a minor revision of the spktoolbar package today, uploaded a new zip file to sourceforge (https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/spktoolbar-0.1.1.zip/download) and updated the json with the new zip file name and the new version number (0.1.1). I updated Lazarus trunk to get the current OPM and set it up to check for updates every few minutes. But now that half a day has passed OPM still displays version 0.1.0 as being the most up-to-date version - it should be 0.1.1. GetMem, did I do something wrong?

BTW: If I right-click in OPM on "package info" of any package I can select an option to "show json". I'd expect to see the json of this particular package, but the function shows the jsons of all packages. Would it be possible to filter the list such that only the json of the clicked package is displayed?
Title: Re: Online Package Manager
Post by: Thaddy on March 29, 2017, 08:58:48 pm
Just an aside: I am getting to like it... :)
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2017, 09:12:16 pm
@wp
Quote
I made a minor revision of the spktoolbar package today, uploaded a new zip file to sourceforge (https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/spktoolbar-0.1.1.zip/download) and updated the json with the new zip file name and the new version number (0.1.1). I updated Lazarus trunk to get the current OPM and set it up to check for updates every few minutes. But now that half a day has passed OPM still displays version 0.1.0 as being the most up-to-date version - it should be 0.1.1. GetMem, did I do something wrong?
After a quick debug it turn out that the JSON is invalid. I run it through a validator, I believe you accidentally deleted the coma after the "DownloadZipURL" line(see image).

Quote
BTW: If I right-click in OPM on "package info" of any package I can select an option to "show json". I'd expect to see the json of this particular package, but the function shows the jsons of all packages. Would it be possible to filter the list such that only the json of the clicked package is displayed?
Initially the "show json" was meant for debugging purposes, but I forget to remove it.  :-[ I don't know if it's useful for other things, but I can add the filter if you like.
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2017, 09:14:50 pm
Quote
@Thaddy
Just an aside: I am getting to like it... :)
Thank you!
Title: Re: Online Package Manager
Post by: wp on March 29, 2017, 10:08:20 pm
I believe you accidentally deleted the coma after the "DownloadZipURL" line(see image).
:-[ The good thing is: I'll never make this error again

But the bad thing is: It does not seem to fix the problem. I uploaded the corrected update.json file about an hour ago, but OPM still displays the old version 0.1.0

BTW: What is the "repository filename"? The name of the zipped package in the Lazarus repository, or the name in the sourceforge repository? In the latter case the filename would be wrong: it would be spktoolbar-0.1.zip for the current version displayed (and spktoolbar-0.1.1.zip for the new version)
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2017, 10:59:05 pm
Quote
But the bad thing is: It does not seem to fix the problem. I uploaded the corrected update.json file about an hour ago, but OPM still displays the old version 0.1.0
Yes, apparently the latest attempt to unify the two package system broke something. I'm gonna fix the issue tomorrow, because it's late here.

Quote
BTW: What is the "repository filename"?
The name of the zipped package in the Lazarus repository.
Title: Re: Online Package Manager
Post by: Fred vS on March 30, 2017, 12:18:38 am
Hello GetMem.

I get this message while clicking on Update: Downloader Inet not supported., then a access violation.

I use Lazarus 1.6.4 and fpc 3.0.2 on Linux Mint 64 bit.

Fre;D
Title: Re: Online Package Manager
Post by: jacmoe on March 30, 2017, 01:55:52 am
Looks like you've installed the wrong package manager? (Blaszyk)
That one has been removed from future Lazarus's.
Get the right one.
It's included with Lazarus trunk.
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2017, 07:26:58 am
@wp
I fixed in r. 54500. Please test. Thank you!
Title: Re: Online Package Manager
Post by: wp on March 30, 2017, 09:41:45 am
No change still. Maybe I am looking at the false place? Or because the package is installed from my working repository (instead of the Lazarus repository) and therefore the package is "up to date"? In the attachment there's a screenshot of OPM. I am talking about the value shown in column "Repository": It should be 0.1.1.0 instead of 0.1.0.0
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2017, 10:02:03 am
The value from column "Repository" 0.1.0.0 is correct(I did not had the chance to update the main repository yet), the "installed" version(0.1.1.0) is also correct since you installed from your working repository, however in the "update" column instead of "-" you should see the update version taken from "update_spktoolbar.json". It works fine for me, the json is downloaded, parsed and the value is displayed correctly in the tree(screenshot).
Title: Re: Online Package Manager
Post by: wp on March 30, 2017, 10:31:36 am
however in the "update" column instead of "-" you should see the update version taken from "update_spktoolbar.json". It works fine for me, the json is downloaded, parsed and the value is displayed correctly in the tree(screenshot).
And this happens because my system is "up to date"?
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2017, 10:48:19 am
Quote
@wp
And this happens because my system is "up to date"?
If all you can see in the update column is "-" then is a bug. I thought I fixed today, but apparently not.

PS: Can somebody else install SpkToolbar? After a rebuild + a few minutes wait, is the update column empty? Thanks in advance for testing.
Title: Re: Online Package Manager
Post by: minesadorada on March 30, 2017, 01:01:20 pm
Quote
@wp
And this happens because my system is "up to date"?
If all you can see in the update column is "-" then is a bug. I thought I fixed today, but apparently not.

PS: Can somebody else install SpkToolbar? After a rebuild + a few minutes wait, is the update column empty? Thanks in advance for testing.
I have an older version of OPM. On opening it updated spktoolbar to V0.1.1.0.  So no problems with the package version, location, JSON etc.
HTH
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2017, 01:10:29 pm
Thank you @minesadorada. In the past the update feature worked well. It was extensively tested by you and others. However after march 14, OPM went through a heavy refactoring which caused the latest bug. I fixed the bug today(or at least I thought I did), however still not works for @wp. I cannot decide is a specific setting in @wp's computer or a general bug. This is why I was hoping somebody else with the latest trunk can run a few tests. Anyway thanks for your feedback.
Title: Re: Online Package Manager
Post by: wp on March 30, 2017, 01:28:35 pm
I have another trunk installation which never had seen spktoolbar. I updated to current trunk and opened OPM: spktoolbar was marked as not being installed, repository version 0.1.0.0. Installed it --> OPM tells me that there is a new version. Installed that too, and it is displayed correctly as installed 0.1.1.0, update 0.1.1.0, status up to date.

My feeling is that there is some kind of conflict if a package is installed from another source and this one is up to date as well. The other source here is my local repository of my development vesion.
Title: Re: Online Package Manager
Post by: minesadorada on March 30, 2017, 02:40:25 pm
Thank you @minesadorada. In the past the update feature worked well. It was extensively tested by you and others. However after march 14, OPM went through a heavy refactoring which caused the latest bug. I fixed the bug today(or at least I thought I did), however still not works for @wp. I cannot decide is a specific setting in @wp's computer or a general bug. This is why I was hoping somebody else with the latest trunk can run a few tests. Anyway thanks for your feedback.
Sorry @GetMem, OPM still won't compile after I update fpc trunk and lazarus trunk to latest builds.   It will be a path conflict on my system I expect, but I can't seem to track it down.  I thought it might be useful to isolate the error to the OPM code rather than anything else.

Good luck with your bug-busting!
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2017, 02:45:58 pm
@wp
To simulate your configuration, I did  the following:
1. Delete everything(lazarus and config dir)
2. Checkout, build IDE, install OPM etc...
3. Install SpkToolbar 0.1.1.0 from sourceforge: https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/spktoolbar-0.1.1.zip/download, first I copied SpkToolbar to $(LazarusDir)\components folder, so it has nothing to do with OPM install dir.

After 1-2 minutes the update column show the correct value, so everything works fine. I'm really puzzled by this one.

Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2017, 02:53:11 pm
Quote
@minesadorada
Sorry @GetMem, OPM still won't compile after I update fpc trunk and lazarus trunk to latest builds.   It will be a path conflict on my system I expect, but I can't seem to track it down.  I thought it might be useful to isolate the error to the OPM code rather than anything else.
Good luck with your bug-busting!

I'm almost certain that the problem is with your fpc configuration. You're using older fpc source, because the "Terminate" procedure was recently added to fpc by @michael. If lazarus cannot find it, it means the fpc source are not the most recent one. However there is a temporary workaround, you can instruct OPM to use it's own internal fphttpclient. Just open "opkman_fpcdef.inc"and remove the second part so FPC311 is become undefined, this way force OPM tol use an internal version of httpclient.
Title: Re: Online Package Manager
Post by: wp on April 12, 2017, 10:19:45 am
GetMem, same problem again: Yesterday I uploaded a new version of fpspreadsheet 1.8.2 and updated the json file, but OPM keeps telling me that the most current version is 1.8.0 even on a Lazarus installation (today's r54612) which never had seen fpspreadsheet. I even downloaded one of the fpspreadsheet packages, and it IS 1.8.0.

The json looks correct to me now:
Code: [Select]
{
  "UpdatePackageData" : {
    "DisableInOPM" : false,
    "DownloadZipURL" : "https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.8.2.zip/download",
    "Name" : "fpspreadsheet"
  },
  "UpdatePackageFiles" : [
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "laz_fpspreadsheet.lpk",
      "Version" : "1.8.2.0"
    },
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "laz_fpspreadsheetexport_visual.lpk",
      "Version" : "1.8.2.0"
    },
    {
      "ForceNotify" : false,
      "InternalVersion" : 1,
      "Name" : "laz_fpspreadsheet_visual.lpk",
      "Version" : "1.8.2.0"
    }
  ]
}
Title: Re: Online Package Manager
Post by: balazsszekely on April 12, 2017, 12:00:45 pm
@wp
I'm aware that the update column/button is somewhat confusing. Initially I only wanted a central repository + a tool to easily update the repository. Unfortunately this raises a few security issues. I don't want to go into the details since it was discussed many times before in this thread. So instead we(forum users) decided to go with the so called "Update" feature, which allows the package maintainer to easily notify a user about a new update. The update feature has at least two drawbacks, beside the confusion:
    1. You have to install the package from the central repository first. Although technically OPM can install directly from an update page, it's not allowed because of the possible unresolved dependency issues
    2. It's not 100% safe. I mean a package maintainer with bad intention, it can(at least in theory) install a malware, especially under windows
On the other hand the update feature also has a great advantage: it removes the workload from the central repository and pass it to the package maintainers, this way making the whole system sustainable in the long run.

PS: I made a small video: https://youtu.be/wiN2GoCvgjc . Please watch it and tell me if OPM behaves the same at your side. Also please suggest another approach for the update system if you consider the current one flawed.


Title: Re: Online Package Manager
Post by: wp on April 12, 2017, 12:25:50 pm
OK, I understand now - I should have read the wiki, it explains everything correctly.

That Lazarus installation which never had seen fpspreadsheet exactly behaves like what you show in your video.

My fpspreadsheet folder has not been installed from repository, therefore, I don't get notified of updates. But why not? Look at the attached screenshof of OPM running on this Lazarus: OPM is detecting that
(1) fpspreadsheet is installed
(2) fpspreadsheet is up to date.

Why can't it also look for my update json file and get the current release version number and display it? I think this is the main source of my confusion.
Title: Re: Online Package Manager
Post by: balazsszekely on April 12, 2017, 02:07:24 pm
Quote
Why can't it also look for my update json file and get the current release version number and display it? I think this is the main source of my confusion.
After I saw your screen shot it hit me. The installed version is bigger then the one available for update, so OPM doesn't display it since technically it's not an update. I thought this is logical but I was wrong. Fixed in r54616. Thanks @wp for the usual help.
Title: Re: Online Package Manager
Post by: wp on April 12, 2017, 02:30:29 pm
Yes, sounds promising. But my development version still does not show the update version number.
Title: Re: Online Package Manager
Post by: balazsszekely on April 12, 2017, 02:53:45 pm
Quote
Yes, sounds promising. But my development version still does not show the update version number.
This is strange...I will investigate further. 
Title: Re: Online Package Manager
Post by: JuhaManninen on April 12, 2017, 03:10:45 pm
I'm aware that the update column/button is somewhat confusing. Initially I only wanted a central repository + a tool to easily update the repository. Unfortunately this raises a few security issues...
I was against this illogical mixture of different design ideas already before you implemented it.
The main design idea of this Online Package Manager was to have manual admin inspection for all included packages, as opposed to automatic systems like Delphinus.
It requires that package authors have an easy way to deliver their packages to be inspected and included. I think that goal is achieved.
The update feature becomes still less usefull when a new version can be easily delivered.
It is still not too late to remove this confusing update feature. The OPM would become logical, straightforward, simple and intuitive.
Title: Re: Online Package Manager
Post by: wp on April 12, 2017, 03:26:09 pm
No, I am perfectly fine with the OPM update system as it is now - now that I understood how it is working. And even if that particular issue with packages not originally installed from the main respository would not be resolved. The good thing is: it is almost no effort for the package maintainer to provide updates. And it is no effort at all for an "OPM manager". If we would give up this I'll bet that OPM will see the same fate as CCR: initially everybody is excited, but it will be devastated after a few years.
Title: Re: Online Package Manager
Post by: balazsszekely on April 12, 2017, 05:13:48 pm
Quote
@JuhaManninen
It is still not too late to remove this confusing update feature. The OPM would become logical, straightforward, simple and intuitive.
If needed, I can remove it in a few minutes. I only need to hide the update column/button, prevent the update thread to start, hide a few item in the option dialog and that's all there is to it. However it would be a shame, I spent way to much time to implement it and other people to test it. It works reasonably well, few issues still need to be fixed though. It's only confusing until you read the wiki page, I will also add a video soon where I will try to explain the update system in details. For now we should focus our effort to link the two package system together. This should be optional though, some of the developers did not like the idea. I also saw that @Joost is working on fppkg, it would be interesting to include some of the features of fppkg into OPM, like the possibility to install fpc packages too?

@wp
I've tried everything, unfortunately I cannot reproduce the issue. This is an elusive bug. As a last attempt please try the following:
1. Close lazarus
2. Delete everything from the config folder. Under windows, typically is located at: C:\Users\%USERNAME%\AppData\Local\lazarus\onlinepackagemanager\config\
3. Start Lazrus/OPM again
Title: Re: Online Package Manager
Post by: wp on April 12, 2017, 05:23:48 pm
As a last attempt please try the following...
No chance... Same issue.

But as I said above, I can live with it, and it looks as if I am the only one having this minor bug. So problem for me if you stop here.
Title: Re: Online Package Manager
Post by: CharlyTango on April 20, 2017, 11:29:38 am
Hi

i tried OPM with Lazarus trunk and it worked like i expected.

Synchronizing different Lazarus installations with the same packages works like a charm. Some clicks and a cup of coffee later its done.
But I've got a handful of unofficial or paid packages and want to install them in the same way. Is there any possibility to include my own packages in the OPM install process?
It would save a lot of time installing packages if there are some conveniant options.


Regards
K.

Title: Re: Online Package Manager
Post by: balazsszekely on April 20, 2017, 01:16:46 pm
@CharlyTango
Quote
i tried OPM with Lazarus trunk and it worked like i expected.
Synchronizing different Lazarus installations with the same packages works like a charm. Some clicks and a cup of coffee later its done.
I'm glad it's working.  :)

Quote
But I've got a handful of unofficial or paid packages and want to install them in the same way. Is there any possibility to include my own packages in the OPM install process?
It would save a lot of time installing packages if there are some conveniant options.
Support for private repositories it's not fully implemented yet. However if you don't mind concatenate a few JSONs, you can create your own private repository. Please do the following:
1. Create one or more repository package. OPM will generate for each package a .zip and a .json file.
2. Concatenate the JSONs and create a single big JSON. Rename it to packagelist.json
3. Copy all the zip files and the packagelist.json to your server.
4. Set up the address for the private repository
5. Select the remote repository in the option dialog

PS: I decided to make a small video, hope it helps: https://youtu.be/oxCArRUiKm8
Title: Re: Online Package Manager
Post by: CharlyTango on April 20, 2017, 02:41:29 pm

Support for private repositories it's not fully implemented yet. However if you don't mind concatenate a few JSONs, you can create your own private repository. Please do the following:
1. Create one or more repository package. OPM will generate for each package a .zip and a .json file.
2. Concatenate the JSONs and create a single big JSON. Rename it to packagelist.json
3. Copy all the zip files and the packagelist.json to your server.
4. Set up the address for the private repository
5. Select the remote repository in the option dialog

PS: I decided to make a small video, hope it helps: https://youtu.be/oxCArRUiKm8

Thanks a lot -- especially the video made it clear.
I will try it on the weekend.  :)
Title: Re: Online Package Manager
Post by: lainz on April 30, 2017, 05:31:12 am
Hi GetMem, I've optimized the speed and functionality of the Lazarus Packages website.

Now:
- It uses Bootstrap 4 instead of Material Design Lite (MDL is really slower)
- It uses AngularJS to fill the site and do the search / get the json file

Fixes:
- If any field is empty is not shown
- The categories that are not used are not displayed, and if you add new categories are added automatically (get categories from JSON)
- It shows the Home Page of each package
- The search and categories are separated, so you can pick a category and do a search in that category or simply filter by category or search independently

Download it here:
https://github.com/lazarusccr/LazarusPackagesRepository
Title: Re: Online Package Manager
Post by: x2nie on April 30, 2017, 08:25:16 am
Hi GetMem, I've optimized the speed and functionality of the Lazarus Packages website.

Download it here:
https://github.com/lazarusccr/LazarusPackagesRepository
I go to http://packages.lazarus-ide.org
and no any picture there.
If picture eat bandwidths too much , maybe we can store pictures somewhere else, such in github or sourceforge (used as pics storage).
I think one picture will talks more better than 500 words of description.
Title: Re: Online Package Manager
Post by: balazsszekely on April 30, 2017, 09:34:35 am
Hi lainz,

Quote
I've optimized the speed and functionality of the Lazarus Packages website.

Now:
- It uses Bootstrap 4 instead of Material Design Lite (MDL is really slower)
- It uses AngularJS to fill the site and do the search / get the json file

Fixes:
- If any field is empty is not shown
- The categories that are not used are not displayed, and if you add new categories are added automatically (get categories from JSON)
- It shows the Home Page of each package
- The search and categories are separated, so you can pick a category and do a search in that category or simply filter by category or search independently
Thank you! It's indeed faster.

I updated the files. I noticed the license is truncated in a few places(ex: ACS - Audio Components Suite). Is this intentional? I also left the old one for a few days for comparison:
New: http://packages.lazarus-ide.org/
Old:  http://packages.lazarus-ide.org/old

Please test!
Title: Re: Online Package Manager
Post by: balazsszekely on April 30, 2017, 09:40:18 am
Quote
I go to http://packages.lazarus-ide.org and no any picture there. If picture eat bandwidths too much , maybe we can store pictures somewhere else, such in github or sourceforge (used as pics storage). I think one picture will talks more better than 500 words of description.

Hi x2nie,

What pictures do you have in mind? I mean those are lazarus packages, what picture do you wish to associate whit each package so it will be more descriptive then the actual description? Or perhaps I misunderstand you?
Title: Re: Online Package Manager
Post by: lainz on April 30, 2017, 04:54:51 pm
Hi lainz,

Thank you! It's indeed faster.

I updated the files. I noticed the license is truncated in a few places(ex: ACS - Audio Components Suite). Is this intentional? I also left the old one for a few days for comparison:
New: http://packages.lazarus-ide.org/
Old:  http://packages.lazarus-ide.org/old

Please test!

HI, the truncation of license is intentional, up to 200 characters. But if is not so good we must find a way to don't display it fully or when the user requests it, else it does a bigger page height for each package just for license displaying.

I forget to add <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
So it looks fine on mobile devices, but should not be a problem since this website is not aimed for mobiles.

Another thing to be fixed is the mixed content, now seems that we have https, just change a line:

const packages_json = 'http://packages.lazarus-ide.org/packagelist.json';
to
const packages_json = 'packages.lazarus-ide.org/packagelist.json';
or
const packages_json = '/packagelist.json';

so it works on http and also on https

Edit: all these changes are now on the repository, just download it again. If the const doesn't work just change it in order to work with http and https.
Title: Re: Online Package Manager
Post by: balazsszekely on May 01, 2017, 07:09:14 am
Quote
Edit: all these changes are now on the repository, just download it again. If the const doesn't work just change it in order to work with http and https.
Updated. Thanks again for your help @lainz.
Title: Re: Online Package Manager
Post by: lainz on May 02, 2017, 01:26:23 am
Quote
Edit: all these changes are now on the repository, just download it again. If the const doesn't work just change it in order to work with http and https.
Updated. Thanks again for your help @lainz.

I learned to do that kind of stuff this last months :) I need to do something back to Lazarus, I learned a lot on this forum.
Title: Re: Online Package Manager
Post by: lainz on May 06, 2017, 11:56:50 pm
Hi GetMem, I've added a small but useful thing to this website, is search highlight, so the text anyone inputs in the search field will be highlighted in each component result:
https://github.com/lazarusccr/LazarusPackagesRepository

A note: the search will look somewhat slower than without the highlight, the plugin is not doing the page slow, but I've set 250 milliseconds between the last character you type before triggering the search, so it in fact uses less resources, and the highlighter can be used with no problems with words of any length.

If is not a great idea just keep the site as is now.
Title: Re: Online Package Manager
Post by: balazsszekely on May 07, 2017, 09:26:20 am
@lainz
Quote
Hi GetMem, I've added a small but useful thing to this website, is search highlight, so the text anyone inputs in the search field will be highlighted in each component result:
https://github.com/lazarusccr/LazarusPackagesRepository
I updated the files. Thank you!

Quote
A note: the search will look somewhat slower than without the highlight, the plugin is not doing the page slow, but I've set 250 milliseconds between the last character you type before triggering the search, so it in fact uses less resources, and the highlighter can be used with no problems with words of any length.
I see no noticeable difference in speed, so everything is ok. It's a useful feature.
Title: Re: Online Package Manager
Post by: balazsszekely on May 14, 2017, 10:09:48 am
From now on is possible to uninstall one or more packages directly from OPM(r. 54908).

PS: Did somebody noticed that laz2_xmlcfg.pas is leaking? Until now I wasn't able to locate the source of the leak.

Title: Re: Online Package Manager
Post by: avra on May 14, 2017, 12:41:58 pm
From now on is possible to uninstall one or more packages directly from OPM(r. 54908).
Much appreciated feature. Thank you!  ;)
Title: Re: Online Package Manager
Post by: Thaddy on May 14, 2017, 01:07:44 pm
It is getting better and better and I have it on by default (ok, because in 1.9 it's on by default  :D ).
Now THAT'S a feature!
Title: Re: Online Package Manager
Post by: avra on June 08, 2017, 02:36:31 am
Notes from testing OPM with latest NewPascal on 64-bit Win10:

LazSerial should be updated to v0.2 from https://github.com/JurassicPork/TLazSerial. The old v0.1 version found in OPM has conflict with Synapse (although it can be easily fixed by hand).

Web Service Toolkit has too many compilation errors to fix by hand. Solved using CodeTyphon version converted with ct2laz.

Everything else I was interested in seams to work out of the box.

Great work! I really like OPM and I am very happy to see it becoming part of Lazarus  8)
Title: Re: Online Package Manager
Post by: balazsszekely on June 08, 2017, 07:04:43 am
@avra

Quote
LazSerial should be updated to v0.2 from https://github.com/JurassicPork/TLazSerial. The old v0.1 version found in OPM has conflict with Synapse (although it can be easily fixed by hand).
Updated.

Quote
Web Service Toolkit has too many compilation errors to fix by hand. Solved using CodeTyphon version converted with ct2laz.
It works fine for me(Lazarus trunk/FPC 3.0.2). I don't mind replacing with your version if it compiles with Laz 1.8/Trunk. Can you please upload somewhere the zip file?

Quote
Great work! I really like OPM and I am very happy to see it becoming part of Lazarus  8)
Thank you.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 08, 2017, 10:44:56 am
Web Service Toolkit has too many compilation errors to fix by hand. Solved using CodeTyphon version converted with ct2laz.
Doesn't compile here either. First error:
 semaphore.pas(83,18) Error: identifier idents no member "SemaphoreInit"

OPM has version 0.6.0 of WST which is old. It is known not to work.
WST trunk works:
 https://svn.code.sf.net/p/lazarus-ccr/svn/wst/trunk

In SWT's mailing list:
 http://groups.google.com/group/wst-list
I have asked for a new release already at late last year in thread
 "New version of WST needed, Lazarus online package manager".
Inoussa answered then but not any more after it.
He may be busy or his motivation has gone down. It is possible WST will not be actively maintained. He would need a co-maintainer for WST.

BTW, who made the WebServiceToolkit package for OPM? I don't think Inoussa made it.
Title: Re: Online Package Manager
Post by: balazsszekely on June 08, 2017, 11:18:42 am
Quote
@JuhaManninen
BTW, who made the WebServiceToolkit package for OPM? I don't think Inoussa made it.
I did. A few month ago I took the trunk version from Inoussa's webpage and created the package for OPM. I did not modify the version number(1.6) since officially there is no new release. The WST from OPM compiles with Laz 1.8/Trunk, FPC 3.0.2, Win7.

PS:I did not check if there are new commits since then.

Edit: A single commit(r. 5823) was made in march 28, 2017.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 08, 2017, 12:17:28 pm
The WST from OPM compiles with Laz 1.8/Trunk, FPC 3.0.2, Win7.
I tested with FPC trunk. I will test with FPC 3.0.2 later.
Title: Re: Online Package Manager
Post by: avra on June 08, 2017, 08:52:12 pm
Quote
LazSerial should be updated to v0.2 from https://github.com/JurassicPork/TLazSerial. The old v0.1 version found in OPM has conflict with Synapse (although it can be easily fixed by hand).
Updated.
Thank you so much. Less manual work for me in the future.  ::)

Quote
Web Service Toolkit has too many compilation errors to fix by hand. Solved using CodeTyphon version converted with ct2laz.
It works fine for me(Lazarus trunk/FPC 3.0.2). I don't mind replacing with your version if it compiles with Laz 1.8/Trunk. Can you please upload somewhere the zip file?
Let me check first how that trunk that Juha mentioned behaves with what I got, and if I can catch some time next week then I will try to provide a patch. If FPC version is suspected to be guilty, then it would really help if someone determines what version breaks the compilation. I would like to maintain compatibility with current FPC 3.0.2 if possible with some ifdefs.

In case anyone is really curious then just use latest ct2laz and with it's default settings when you press on "CT => LAZ" button, it will download all CT examples and components and convert them to be ready for manual installation in Lazarus. WST will be in pl_WST directory. That works for me on 2 previously mentioned Lazarus installations (one FPC trunk and one FPC 3 months old).

Web Service Toolkit has too many compilation errors to fix by hand. Solved using CodeTyphon version converted with ct2laz.
Doesn't compile here either. First error:
 semaphore.pas(83,18) Error: identifier idents no member "SemaphoreInit"
Huh, this might turn to be harder then I suspected. I had different error...
Title: Re: Online Package Manager
Post by: balazsszekely on June 08, 2017, 10:36:45 pm
I downloaded then ifdef-ed the latest version. It should be ok now. Tested with:
- FPC 3.0.0, FPC 3.0.2, FPC trunk
- Lazarus 1.8, Lazarus trunk
- win32/64, gtk2, carbon

Please test.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 09, 2017, 12:22:28 am
I downloaded then ifdef-ed the latest version. It should be ok now. Tested with:
- FPC 3.0.0, FPC 3.0.2, FPC trunk
- Lazarus 1.8, Lazarus trunk
- win32/64, gtk2, carbon
It does not work with FPC trunk on any OS except for Windows because unit semaphore in WST has {$DEFINE FPC_TM}.
For Windows it is not defined for some reason.
Then the code uses TThreadManager which I guess has changed a lot in FPC trunk resulting many errors.
This is not specific to the version in OPM, the same code is in WST trunk.
WST development has not been active recently, there is only 1 commit this year and the previous one is from October 2016.

Now I am worried that you people essentially fork the WST project and maintain a competing OPM version. It is waste of resources. In some situations a fork is good but not in this situation, as apparently the official maintainer is busy or tired. The OPM fork does not even use revision control which makes things worse.
WST sources are in Lazarus CCR repo. We can now take the liberty to commit bug fixes there. Then only the release version of WST for OPM would be outside the "official" releases. I guess all people involved (myself, GetMem, Avra) have commit rights to CCR. (?)
Fixes can be backported from CodeTyphon as much as needed. That is the beauty of FOSS (Free and Open Source Software).

We also must try to contact Inoussa more. He has not answered the WST mailing list.
Title: Re: Online Package Manager
Post by: balazsszekely on June 09, 2017, 07:05:31 am
Quote
@Juha
Now I am worried that you people essentially fork the WST project and maintain a competing OPM version. It is waste of resources. In some situations a fork is good but not in this situation, as apparently the official maintainer is busy or tired. The OPM fork does not even use revision control which makes things worse.
I'm not planning to fork or maintain any other package, it's indeed a waste of resources. However I don't like when packages from OPM does not work, it looks like OPM is broken. This is why sometimes(rarely) I do make small modification, especially when packages are no longer maintained. The modification are almost always IFDEFS to make the package compatible with the latest Lazarus/FPC versions. In this particular case(WST) time is in our side, since the issue affect only FPC trunk users.

Quote
I guess all people involved (myself, GetMem, Avra) have commit rights to CCR. (?)
AFAIK I don't have commit rights.

Quote
Fixes can be backported from CodeTyphon as much as needed. That is the beauty of FOSS (Free and Open Source Software).
I don't use CodeTyphon, so I hope @Avra will backport it. I will add the backported version to OPM.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 09, 2017, 07:18:18 am
This is why sometimes(rarely) I do make small modification, especially when packages are no longer maintained.
Yes, that is already forking because the changes do not go to the original project.
It is an understandable fork and nothing serious but we should always think how to get the changes to the actual project.

Quote
I don't use CodeTyphon, so I hope @Avra will backport it. I will add the backported version to OPM.
Backports must go to the actual project in CCR. Then it can be used for OPM. I can commit to CCR if somebody without commit rights provides patches.
Title: Re: Online Package Manager
Post by: avra on June 09, 2017, 09:27:26 am
Quote
Quote
I don't use CodeTyphon, so I hope @Avra will backport it. I will add the backported version to OPM.
Backports must go to the actual project in CCR. Then it can be used for OPM.
That was my initial plan hopefully scheduled for next week.

Quote
I can commit to CCR if somebody without commit rights provides patches.
CCR is in Mantis, so maybe I should go that path? If not for any reason, then it is not a problem for me to send you patches.

I downloaded then ifdef-ed the latest version. It should be ok now. Tested with:
- FPC 3.0.0, FPC 3.0.2, FPC trunk
- Lazarus 1.8, Lazarus trunk
- win32/64, gtk2, carbon
It does not work with FPC trunk on any OS except for Windows because unit semaphore in WST has {$DEFINE FPC_TM}.
For Windows it is not defined for some reason.
Then the code uses TThreadManager which I guess has changed a lot in FPC trunk resulting many errors.
@GetMem: To avoid duplicate work please send me ifdefed version to avra at writeme dot com.
@Juha: It is not clear to me if you have these errors trying to install CT version on FPC trunk only on non Windows OS, or you have it also on Windows? It works for me on Windows. Haven't tested elsewhere.
Title: Re: Online Package Manager
Post by: balazsszekely on June 09, 2017, 09:46:32 am
Quote
@avra
To avoid duplicate work please send me ifdefed version to avra at writeme dot com.
It's already in the central repository. Just open OPM, check WST then click the download button. Apparently I only solved just part of the issues. It works on windows with FPC trunk, but not on the other platforms.   
Title: Re: Online Package Manager
Post by: avra on June 09, 2017, 10:32:03 am
Quote
@avra
To avoid duplicate work please send me ifdefed version to avra at writeme dot com.
It's already in the central repository. Just open OPM, check WST then click the download button.
Of course, silly me!  :D  %)  :D

Quote
Apparently I only solved just part of the issues. It works on windows with FPC trunk, but not on the other platforms.
Can anyone confirm that WST works on non-windows platforms with FPC 3.0.2 or older?
Title: Re: Online Package Manager
Post by: JuhaManninen on June 09, 2017, 11:52:19 am
CCR is in Mantis, so maybe I should go that path? If not for any reason, then it is not a problem for me to send you patches.
Both ways suit me.

Quote
@Juha: It is not clear to me if you have these errors trying to install CT version on FPC trunk only on non Windows OS, or you have it also on Windows? It works for me on Windows. Haven't tested elsewhere.
I tested only on Linux. By looking at code in semaphore.pas I guessed it works on Windows but not elsewhere:
Code: Pascal  [Select][+][-]
  1. {$IFDEF FPC}
  2.   {$IFDEF WINDOWS}
  3.     TSemaphoreHandle = THandle;
  4.   {$ELSE}
  5.     {$DEFINE FPC_TM}
  6.     TSemaphoreHandle = Pointer;
  7.   {$ENDIF}
  8. {$ENDIF}
Then see how FPC_TM is used.

I remember WST trunk worked well with FPC 3.0 on Linux at late last year. I believe it works with FPC 3.0.2, too.
I can test more sometime in near future.

This brings a question in my mind. Why WST needs such a FPC_TM define? FPC libs are cross-platform and lots of effort was used to make them so.
WST should be able to use TThreadManager on every platform, or then the alternative code on every platform, without IFDEFs.
semaphore.pas should not need this:
Code: Pascal  [Select][+][-]
  1. uses
  2. ...
  3. {$IFDEF FPC}
  4.   {$IFDEF WINDOWS}
  5.     ,Windows
  6.   {$ENDIF}
  7. {$ENDIF};
Anyway, any bigger changes should be consulted with Inoussa when he is available.
Title: Re: Online Package Manager
Post by: avra on June 15, 2017, 08:42:55 am
Can anyone confirm that WST works on non-windows platforms with FPC 3.0.2 or older?
Well, trunk WST will work only with FPC from Sep 5 2016 or newer because it uses at least TPasSourcePos introduced in this patch:
https://github.com/graemeg/freepascal/commit/37aa4c79e1ab81558cdfac05090309c2e2e1dc25
Does anyone have an idea how to at least aproximatelly detect FPC version for a compile message suggestion to install older WST?
Title: Re: Online Package Manager
Post by: JuhaManninen on June 15, 2017, 09:46:51 am
Well, trunk WST will work only with FPC from Sep 5 2016 or newer because it uses at least TPasSourcePos introduced in this patch:
https://github.com/graemeg/freepascal/commit/37aa4c79e1ab81558cdfac05090309c2e2e1dc25
No it doesn't. I just searched WST trunk sources and it was not there.
TPasSourcePos is part of Pascal parser fcl-passrc. WST does not parse Pascal code.

Quote
Does anyone have an idea how to at least aproximatelly detect FPC version for a compile message suggestion to install older WST?
Detecting FPC trunk / FPC 3.02 / FPC 3.0 should be enough. It is reasonable if the WST found in OPM supports them.

I can test WST trunk with FPC 3.0.2 on Linux later today if needed.
Title: Re: Online Package Manager
Post by: balazsszekely on June 15, 2017, 10:08:38 am
Quote
@avra
Does anyone have an idea how to at least aproximatelly detect FPC version?
I don't think it's possible to detect specific revision numbers, like the one from  Sep 5 2016(r. 34429), however a close approximation can be done like this(you can refine it more to detect 3.0.0, etc...):
Code: Pascal  [Select][+][-]
  1. {$IF FPC_VERSION = 3}
  2.   {$IF FPC_RELEASE = 0}
  3.     {$IF FPC_PATCH >= 1}
  4.       {$DEFINE FPC302}
  5.     {$ENDIF}
  6.   {$ELSE}
  7.     {$IF FPC_PATCH > 0}
  8.       {$DEFINE FPC311}
  9.     {$ENDIF}
  10.   {$ENDIF}
  11. {$ENDIF}

Currently trunk is 3.1.1, but that will change in the future.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 15, 2017, 10:51:48 am
I don't think it's possible to detect specific revision numbers
And it is not needed either. Supporting trunk always means the latest revision of trunk. Trying to support all intermediate revisions would be a mess.
Right version checks now work also in future because the version numbers are sequential.
3.0.2 < 3.1.1 < 3.2.0.
Title: Re: Online Package Manager
Post by: avra on June 15, 2017, 07:49:00 pm
Well, trunk WST will work only with FPC from Sep 5 2016 or newer because it uses at least TPasSourcePos introduced in this patch:
https://github.com/graemeg/freepascal/commit/37aa4c79e1ab81558cdfac05090309c2e2e1dc25
No it doesn't. I just searched WST trunk sources and it was not there.
TPasSourcePos is part of Pascal parser fcl-passrc. WST does not parse Pascal code.
Check again. I was just a little ahead of time.  8)
https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/wst/trunk/ws_helper/wsdl_parser.pas#l855
Title: Re: Online Package Manager
Post by: JuhaManninen on June 15, 2017, 08:51:53 pm
Check again. I was just a little ahead of time.  8)
https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/wst/trunk/ws_helper/wsdl_parser.pas#l855
Ok, right. Inoussa has committed it.
Why does a Web Service code parse Pascal sources? I am puzzled. I understand it parses XML-based SOAP and WSDL.

Anyway, I have now tested WST trunk with FPC 3.0.2 + Lazarus fixes_1_8 branch and it compiles well.
I guess an OPM package should be made of WST trunk because there is no recent release.
Title: Re: Online Package Manager
Post by: avra on June 15, 2017, 10:11:55 pm
Quote from: JuhaManninen
Anyway, I have now tested WST trunk with FPC 3.0.2 + Lazarus fixes_1_8 branch and it compiles well.
I tested on 1.6.4 + 3.0.2 from Manjaro 64bit repo and as expected it doesn't work because of that 9 months old patch. So newer Lazarus is needed, like yours. This is why I would like to show compile message to old Lazarus users that they need to use older WST. Otherwise they might be puzzled why it doesn't work.

I have also tested on Win10x64 TrunkAll (both trunks) and it didn't work initially, so I had to backport from CT. Patch attached.  8)
Any feedback is welcome before asking author to examine the patch.

I will now see how this patched WST in TrunkAll behaves on Linux...

UPDATE: I forgot to say that wst_ics.lpk is not used in CT so it could not be backported. It can't be compiled in TrunkAll, but since wst_indy.lpk and wst_synapse.lpk compile fine it does not matter much to me. Maybe someone else will be motivated enough to take a look...
Title: Re: Online Package Manager
Post by: avra on June 17, 2017, 03:22:45 pm
I will now see how this patched WST in TrunkAll behaves on Linux...
Well, there were semaphore problems on Linux as Juha has already reported, so I have backported CT fix (which I don't like that much but in lack of a better one it will have to do for now). This is the only problem on TrunkAll in Manjaro64 which is now fixed with this CT backport, so I checked when this breaking change was introduced:
https://github.com/graemeg/freepascal/commit/b338b3d12d657890b1f7ed2bdc49edfd1eb47c17
and IFDEF-ed changes so it can still compile on 3.0.2. Compilation fixed.

Patch allows WST trunk to compile fine with:
TrunkAll (32) on Win10 (64)
TrunkAll (64) on Manjaro Linux (64)
1.6.4+3.0.2 (64) on Manjaro Linux (64)

Any feedback is welcome before asking author to examine the patch.

Enjoy  :)
Title: Re: Online Package Manager
Post by: balazsszekely on June 18, 2017, 08:08:57 am
Thanks avra for fixing WST. I will wait until Inoussa applies the patch, then I will add the package to the main repository.
Title: Re: Online Package Manager
Post by: avra on June 18, 2017, 10:06:44 pm
I will wait until Inoussa applies the patch, then I will add the package to the main repository.
Yes, I also think that would be the way to go.
Title: Re: Online Package Manager
Post by: avra on June 20, 2017, 08:22:17 am
I will wait until Inoussa applies the patch, then I will add the package to the main repository.
Inoussa has just told me that he applied the patch. Can't wait to test it.  :)
Title: Re: Online Package Manager
Post by: balazsszekely on June 21, 2017, 09:25:27 pm
Quote
Inoussa has just told me that he applied the patch. Can't wait to test it.  :)
Done. Added to the main repository. Please test!
Title: Re: Online Package Manager
Post by: Thaddy on June 21, 2017, 09:40:09 pm
In the mean time,why doesn't it work on arm? But is available?(I know, the implementation avl tree uses x86 assembler, in a useless manner:it doesn't (hardly) optimize. Skip such bollocks)
Just use a pure pascal virtual tree.
Title: Re: Online Package Manager
Post by: balazsszekely on June 22, 2017, 12:21:32 pm
@Thaddy
I cannot test on ARM, feel free to create a patch if you like. Most likely VST has some bugs. I tested OPM under win32/64, gtk2, carbon, qt.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 22, 2017, 12:44:15 pm
I know, the implementation avl tree uses x86 assembler, in a useless manner:it doesn't (hardly) optimize.
You mean virtual treeview, right.
Yes, that is a real problem in a cross-platform system. Luis Américo has many versions of the component ported, including the latest (was it 6?). Maybe he has a solution for future.
Now the situation is messy because there are so many versions around and the one used by OPM is a local copy of one oldish version.
Title: Re: Online Package Manager
Post by: Thaddy on June 22, 2017, 12:44:23 pm
The code contains inline assembler that is intel specific. And that assembler adds hardly anything compared with what the compiler generates. It also makes a port more difficult.
Title: Re: Online Package Manager
Post by: wp on June 25, 2017, 11:34:13 pm
@GetMem: please, could you add the new ChemText package to OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on June 26, 2017, 06:06:27 am
@wp
Done. It's a nice component.
Title: Re: Online Package Manager
Post by: wp on June 26, 2017, 09:18:13 am
Thanks back to you. And the updateJson is stored here: https://sourceforge.net/projects/lazarus-ccr/files/chemtext/OPM/update_ChemText.json/download (https://sourceforge.net/projects/lazarus-ccr/files/chemtext/OPM/update_ChemText.json/download)

[EDIT]
BTW - I saw that the structure of the updateJSON has changed. There's node "UpdateLazPackages" now, instead of "UpdatePackageFiles". Is this of any relevance for me?
Title: Re: Online Package Manager
Post by: avra on June 27, 2017, 10:15:00 pm
I will wait until Inoussa applies the patch, then I will add the package to the main repository.
Inoussa has just told me that he applied the patch. Can't wait to test it.  :)
Well, I tested and found lots of problems in WST trunk. In order to avoid hijacking this thread again I will continue WST patch discussion here:
http://forum.lazarus.freepascal.org/index.php/topic,24519.msg250764.html#msg250764

It would be nice if someone else can confirm my findings.  :-\
Title: Re: Online Package Manager
Post by: balazsszekely on June 29, 2017, 06:21:00 am
Sorry for the late response I was in a short vacation.

@wp
Quote
Thanks back to you. And the updateJson is stored here: https://sourceforge.net/projects/lazarus-ccr/files/chemtext/OPM/update_ChemText.json/download
Done. Thank you. I ran a few test the update works well, however the lpk version is still 1.0 instead of 1.1 after update.

Quote
[EDIT]
BTW - I saw that the structure of the updateJSON has changed. There's node "UpdateLazPackages" now, instead of "UpdatePackageFiles". Is this of any relevance for me?
@Juha refactored/renamed a few class so the structure of the update json has also changed. It should work without any issues.

@avra
Quote
Well, I tested and found lots of problems in WST trunk. In order to avoid hijacking this thread again I will continue WST patch discussion here:
http://forum.lazarus.freepascal.org/index.php/topic,24519.msg250764.html#msg250764

It would be nice if someone else can confirm my findings.  :-\
I will run a few tests next week.
Title: Re: Online Package Manager
Post by: wp on June 29, 2017, 09:21:57 am
I ran a few test the update works well, however the lpk version is still 1.0 instead of 1.1 after update.
Thanks for notifying me. Too many steps involved... Should be fixed now (version 0.1.2).
Title: Re: Online Package Manager
Post by: balazsszekely on June 29, 2017, 11:49:09 am
Quote
Thanks for notifying me. Too many steps involved... Should be fixed now (version 0.1.2).
It works fine now. I also updated the package from the main repository to the latest version 0.1.2.
Title: Re: Online Package Manager
Post by: minesadorada on June 29, 2017, 02:25:31 pm
@Juha refactored/renamed a few class so the structure of the update json has also changed. It should work without any issues.
Are the changes backward-compatible with the original spec?
Title: Re: Online Package Manager
Post by: balazsszekely on June 29, 2017, 05:21:59 pm
@minesadorada
Quote
Are the changes backward-compatible with the original spec?
Yes. You don't have to modify the old json files. 
Title: Re: Online Package Manager
Post by: Remy Lebeau on June 30, 2017, 03:49:07 am
Talking about NuGet ... can somebody please tell me how it manages the packages?
I understood it has a centralized place for them but who is allowed to add / remove / update packages?

It has server side SW which enables interactive feedback from users.
It would be useful in our system, too, but will not be implemented initially for sure.

Users do:
https://www.nuget.org/users/account/LogOn?ReturnUrl=%2Faccount

Register and you get access to it.

And this is what annoys me about Embarcadero's GetIt Package Manager.  Everything has to go through Embarcadero.  Submissions, updates, installation steps, everything has to be sent to Embarcadero and then they have to apply it to GetIt.  End users have no direct access over their own entries.  I want to get Indy into GetIt, but Indy doesn't have a clean installation process (less so for C++Builder than Delphi), so I have been re-working Indy's package structure to simplify installation before I will submit it to *any* online Package Manager.
Title: Re: Online Package Manager
Post by: Remy Lebeau on June 30, 2017, 06:05:04 am
PS: I also post a list with available packages, if somebody knows a package that is not in the list, please let me know.
Code: Pascal  [Select][+][-]
  1. Indy

Did someone post Indy to OPM without telling me??? :o

I'm Indy's maintainer, but I'm not a FreePascal/Lazarus user.  Now how am I supposed to keep Indy updated in OPM, or make future changes to it, if I don't even know how it was setup in OPM?  I guess the OPM maintainer is going to have to send me the current details.

Now granted, anyone can submit any component for consideration for inclusion in OPM.  But come on, shouldn't there be some checks-and-balances in place to make sure that some reasonable amount of effort is made to contact the component owners to get permission before actually adding it to the list?  Maybe the owners aren't around anymore?  OK, do whatever with it.  Maybe the owners are still around and will want to maintain it themselves?  OK, give them the option.  Have some consideration, please!

Since Indy does support FreePascal/Lazarus, now I have to take time out of my busy schedule to figure out how to setup Indy on my end to continue supporting OPM now that it is already in the system, before I was ready for it.  Thanks for forcing my hand.  >:(  :'(
Title: `
Post by: balazsszekely on June 30, 2017, 06:59:37 am
Hi Remy,

I'm the maintainer of OPM and I was the one who added Indy to the main repository since is so popular among lazarus users. Yes I should have contacted you before(sorry for this). I'm in a small vacation now. Back with more details next week. 
Title: Re: Online Package Manager
Post by: Remy Lebeau on June 30, 2017, 07:06:48 am
I don't mind that Indy is in OPM, but a heads up beforehand would have been appreciated.  I've already been working on changes to Indy to make it more compatible with installing from package managers.  Now I have to make sure that what I have already done so far is even going to be compatible with OPM going forward.

Glad to hear that installing Indy via OPM works, though.  I know installing Indy in Lazarus by hand isn't always easy.

I await your details.  I know I'm going to need to make some changes to it.  For instance, I don't want it listed as "Indy 10.6.2.0".  It should be listed as just "Indy 10", and the current version number from Indy's SVN is 10.6.2.5429 at the time of this writing (the last number is the SVN revision number).  Depending on which SVN revision of Indy 10 you put in the OPM repository, the actual version number it reports to users should match that revision number (and that is not going to be 10.6.2.0!).
Title: Re: Online Package Manager
Post by: balazsszekely on July 03, 2017, 10:50:18 pm
@Remy Lebeau

Back with more details:
1. In order to install indy, you have to compile it twice, more over when you install another package and rebuild Lazarus the same "Cannot find IdStreamVCL error appears". To overcome this problem the guys from CT(fork of Lazarus) have slightly modified the source code. You can find the following comment in the info.txt file:
Quote
NOTE: To solve "Circular unit reference" problem, IdStream.pas is spilt to IdStream_int.inc, IdStream_imp.inc and add to IdGlobal.pas
Unfortunately the CT package system are no longer compatible with Lazarus, so I had to convert it back. The good thing is they version always work on every platform. If you wish to study the modifications, I can upload the source somewhere.

2. Submitting a new package to the main repository is quite simple. All you have to do is start OPM from the main menu(Lazarus), select the package directory and press the submit button. However Indy is a special case and as you can see, a few extra step is needed. Since you're not a freepascal/lazarus user, I did all the modification you suggested. The version in the main repository is slightly older(march 08, revision number: 5403). Please see attached image, hope everything is ok. I plan to add a newer version soon. 
 
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 04, 2017, 12:46:43 am
1. In order to install indy, you have to compile it twice

Which I never understood why, and nobody ever explained it to me.

more over when you install another package and rebuild Lazarus the same "Cannot find IdStreamVCL error appears".

That doesn't make sense to me, either, since IdStreamVCL is referenced in indylaz.pas, same as IdStream.  Could it be because IdStreamVCL is listed before IdStream instead of after?

To overcome this problem the guys from CT(fork of Lazarus) have slightly modified the source code. You can find the following comment in the info.txt file:
Quote
NOTE: To solve "Circular unit reference" problem, IdStream.pas is spilt to IdStream_int.inc, IdStream_imp.inc and add to IdGlobal.pas

What "circular unit reference" are they referring to?  IdStream references IdStreamVCL, but not the other way around.

Unfortunately the CT package system are no longer compatible with Lazarus, so I had to convert it back. The good thing is they version always work on every platform. If you wish to study the modifications, I can upload the source somewhere.

Well, if I'm going to be able to maintain Indy in OPM, I need to know what modifications are needed to make future updates of Indy work with OPM.  Fortunately, TIdStreamHelper is going away in Indy 11, though.  Is that the only thing that is causing the double-compile requirement, or are there other issues?

2. Submitting a new package to the main repository is quite simple. All you have to do is start OPM from the main menu(Lazarus), select the package directory and press the submit button. However Indy is a special case and as you can see, a few extra step is needed. Since you're not a freepascal/lazarus user, I did all the modification you suggested. The version in the main repository is slightly older(march 08, revision number: 5403). Please see attached image, hope everything is ok. I plan to add a newer version soon.

Thanks for that.  But I do need to be able to maintain it myself in the long run.  For instance, now that it is in OPM, I need to know what the zip structure looks like so I can match it in future updates, right?  And I'll have to setup an update JSON for new zips.  There is actually a zip generated nightly, but it has a version number in the filename, is that OK or does the filename need to be static for OPM?  Or just update the JSON every time there is a new zip filename?
Title: Re: Online Package Manager
Post by: balazsszekely on July 05, 2017, 10:02:03 am
@Remy Lebeau
Quote
Which I never understood why, and nobody ever explained it to me.
Because nobody knows for sure. According to some is a bug in the package system, according to others is a circular reference issue. Personally I did not study the bug, all I can say the CT version works well, so I have to believe them when they say is a circular reference issue. Why it works with Delphi and not with Lazarus is a mystery to me. You can download the CT zip from here: https://drive.google.com/open?id=0B9Me_c5onmWoeGZWYXhkOVB6Sk0

Quote
That doesn't make sense to me, either, since IdStreamVCL is referenced in indylaz.pas, same as IdStream.  Could it be because IdStreamVCL is listed before IdStream instead of after?
Unfortunately changing the order in the lpk does not help.

Quote
Is that the only thing that is causing the double-compile requirement, or are there other issues?
No other issues AFAIK.

Quote
Thanks for that.  But I do need to be able to maintain it myself in the long run.
Yes, this would be the ideal solution. The update feature removes the workload from the central repository and pass it to the package maintainers, this way making the whole system sustainable in the long run.

Quote
For instance, now that it is in OPM, I need to know what the zip structure looks like so I can match it in future updates, right? 
OPM is very permissive, you can add/remove/modify files inside the zip, just don't change the relative path to the indylaz.lpk or don't rename the lpk itself. The current version inside the main repository is just a temporary solution, until the double-compile requirement is eliminated in an "official" way. I mean you can add back the changes to Indy trunk. 

Quote
And I'll have to setup an update JSON for new zips.  There is actually a zip generated nightly, but it has a version number in the filename, is that OK or does the filename need to be static for OPM? Or just update the JSON every time there is a new zip filename?
You should update the json every time there is a new zip. The json structure is very simple, all you have to do is change the "DownloadZipURL" the "Version" item, the second one is not mandatory. Please read here: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates . I suppose the update of the json file can be easily automated when the nightly zip is created?
Alternatively you can use a static zip and update it every few month or so. It's up to you.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 05, 2017, 11:45:55 pm
Because nobody knows for sure. According to some is a bug in the package system, according to others is a circular reference issue. Personally I did not study the bug, all I can say the CT version works well, so I have to believe them when they say is a circular reference issue. Why it works with Delphi and not with Lazarus is a mystery to me. You can download the CT zip from here: https://drive.google.com/open?id=0B9Me_c5onmWoeGZWYXhkOVB6Sk0

Is that the same zip that is in the OPM repository right now?

So, CT basically just eliminated the IdStream... units completely, moving the relevant code into the IdGlobal unit, and removed all references to IdStream... from other units.  I can do the same in the main Indy release (I have already written the code to do so, but I haven't checked it in yet).

OPM is very permissive, you can add/remove/modify files inside the zip, just don't change the relative path to the indylaz.lpk or don't rename the lpk itself.

Is the Indy package that is in OPM right now based on the CT zip?  It has a different source code folder structure than the official Indy release uses.  I know the single-folder structure is better, which is why I'm going to be using a similar folder structure in Indy 11, but will not be changing it for Indy 10.  If I release an update zip for OPM, does it need to preserve the current folder structure?  Or can the entire content of the zip be different as long as indylaz.lpk is in the same location as now?

You should update the json every time there is a new zip.

OK.

I suppose the update of the json file can be easily automated when the nightly zip is created?

Yes, I think it should be fairly easy to add a JSON template to the nightly script so it publishes a new JSON with the updated filename.  There are other files in Indy that contain version numbers that get updated on each nightly pull.
Title: Re: Online Package Manager
Post by: balazsszekely on July 06, 2017, 11:54:59 am
@Remy Lebeau
Quote
Is that the same zip that is in the OPM repository right now?
Yes.

Quote
So, CT basically just eliminated the IdStream... units completely, moving the relevant code into the IdGlobal unit, and removed all references to IdStream... from other units.  I can do the same in the main Indy release (I have already written the code to do so, but I haven't checked it in yet).
That would be great. Thanks.

Quote
Is the Indy package that is in OPM right now based on the CT zip?
The CT release and the zip in the OPM  basically are the same, except some naming convension(ex: pl_indylaz instead of indylaz) and some difference between extensions(ex: cpk instead of lpk).

Quote
If I release an update zip for OPM, does it need to preserve the current folder structure?  Or can the entire content of the zip be different as long as indylaz.lpk is in the same location as now?
Feel free to make any modification you like, even change the location of indylaz.lpk if necessary. When the new zip is ready, I can add it again to OPM, this need to be done only once, after that the update will work without any issues. If it's possible please leave the current CT icons/pngs(component palette), the icons from the trunk are old, 16 bit colour(see screenshot).
Title: Re: Online Package Manager
Post by: avra on July 06, 2017, 01:13:22 pm
Quote
So, CT basically just eliminated the IdStream... units completely, moving the relevant code into the IdGlobal unit, and removed all references to IdStream... from other units.  I can do the same in the main Indy release (I have already written the code to do so, but I haven't checked it in yet).
That would be great. Thanks.
+1  :D
Title: Re: Online Package Manager
Post by: Cyrax on July 06, 2017, 10:16:46 pm
1. In order to install indy, you have to compile it twice

Which I never understood why, and nobody ever explained it to me.


Probably FPC compiler got confused by same name used in include file in multiple paths. This should be somewhat fixed in the FPC trunk.
Title: Re: Online Package Manager
Post by: balazsszekely on July 07, 2017, 05:55:58 am
@Cyrax
Quote
Probably FPC compiler got confused by same name used in include file in multiple paths. This should be somewhat fixed in the FPC trunk.
Unfortunately is not fixed. Lazarus Trunk + FPC Trunk(1 compile + install).
Title: Re: Online Package Manager
Post by: marcov on July 07, 2017, 10:07:35 am
What "circular unit reference" are they referring to?  IdStream references IdStreamVCL, but not the other way around.

If you pass -va you can sometimes see more reason for recompiling.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 07, 2017, 08:28:49 pm
Unfortunately is not fixed. Lazarus Trunk + FPC Trunk(1 compile + install).

If compiling on Windows, it would be interesting to see what SysInternals Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx) has to say about where FPC/Lazarus is actually looking for IdStreamVCL.pas when it can't be found.
Title: Re: Online Package Manager
Post by: balazsszekely on July 08, 2017, 06:04:40 pm
@marcov
Quote
If you pass -va you can sometimes see more reason for recompiling.
Thanks for the tip. In this case there is no more useful info, just this:
"Warning: Recompiling IdStreamVCL, checksum changed IdGlobal.ppu"
This explains why the CT guys moved everything to IdGlobal and eliminated the IdStream unit completely.

@Remy Lebeau
Quote
If compiling on Windows, it would be interesting to see what SysInternals Process Monitor has to say about where FPC/Lazarus is actually looking for IdStreamVCL.pas when it can't be found.
After applying 3-4 filters, I managed to get some info. The screenshot contains a few nonsense(red underlines). I tend to believe is a bug in the package system after all, not a circular reference issue.
Title: Re: Online Package Manager
Post by: Cyrax on July 08, 2017, 11:03:42 pm
I have attached modified (from original) indy package file in this post, which I have successfully used for full IDE build many times without need for rebuild the indy package.
Title: Re: Online Package Manager
Post by: balazsszekely on July 09, 2017, 07:41:07 am
Thanks @Cyrax. Your solution also works(I need to run a few more tests though). So basically you added the three sub directories(core, protocol, system) to the "Include files" and "Other unit files"(see attachment)? As far as I can see this is the only change you did.


PS:I still don't understand why the original package has this double-compile requirement, more over why the compiler search for "IdStreamVCL.pas" in the IDE subdirectory(see above)? With delphi works out of the box. I guess this will remain a small mystery.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 11, 2017, 10:54:05 pm
I have attached modified (from original) indy package file in this post, which I have successfully used for full IDE build many times without need for rebuild the indy package.

I have incorporated your changes into Indy's SVN.
Title: Re: Online Package Manager
Post by: balazsszekely on August 08, 2017, 12:07:41 pm
Today we break the "magic" barrier. There is more then 100 packages in the main repository. It was much harder then I initially thought...not so many Lazarus packages out there.
Title: Re: Online Package Manager
Post by: Fred vS on August 08, 2017, 02:53:25 pm
@ Getmem.

Wow, I just have try your OPM ---> impressive, works out of the box, no problem to install.

Huh, you have added uos project too -->  many thanks for that.
But the /lib folder is missing (needed for dynamically load libraries).  Was it wanted ?
The size of compressed /lib is +- 5 megas, with libraries for Linux 64/32, Windows 64/32, FreeBSD 64/32, MacOSX 32, RaspberryPi.

And to be complete, the folder /units is missing too. (needed for compilation of the demos otherwise --> annoying error message while compiling).

Many thanks.

IMHO, your OPM should be part of Lazarus, not only a lpk.

Fre;D
Title: Re: Online Package Manager
Post by: molly on August 08, 2017, 03:00:21 pm
IMHO, your OPM should be part of Lazarus, not only a lpk.

Funny that you mention that  (and fwiw, i agree)  :)

Quote
I use Lazarus 1.2.6 32/64 and FPC 2.6.4/2.7.1 32/64 on

OPM is part of lazarus in 1.8 release  ;)
Title: Re: Online Package Manager
Post by: Fred vS on August 08, 2017, 03:06:01 pm
Quote
OPM is part of lazarus in 1.8 release  ;)

Huh, I use Lazarus V 1.8 R3.  Maybe I did not look enough when I run it first so I did --> Install new package ---> OPM.

And then I found it in "Package" menu, Online Package manager.
But maybe it was already there, before installing OPM, so sorry for the proposition.

Fre;D
Title: Re: Online Package Manager
Post by: molly on August 08, 2017, 03:11:29 pm
But maybe it was already there, before installing OPM, so sorry for the proposition.
No need to be sorry.

It should already have been there. No idea for which lazarus version you actually installed OPM.

afaik the 'standalone' package provided is for those that are using lazarus 1.6.x
Title: Re: Online Package Manager
Post by: balazsszekely on August 08, 2017, 03:50:16 pm
@Fred vS
Quote
But the /lib folder is missing (needed for dynamically load libraries).  Was it wanted ?
The size of compressed /lib is +- 5 megas, with libraries for Linux 64/32, Windows 64/32, FreeBSD 64/32, MacOSX 32, RaspberryPi.

And to be complete, the folder /units is missing too. (needed for compilation of the demos otherwise --> annoying error message while compiling).
Binaries are automatically removed by OPM to prevent infection, this is especially important under windows. Since uos is a well known package, I will add the libraries back soon and the unit folder too. Thanks for the feedback.

@molly
Quote
afaik the 'standalone' package provided is for those that are using lazarus 1.6.x
True. Previous version of Lazarus are not supported at all.
Title: Re: Online Package Manager
Post by: Fred vS on August 08, 2017, 04:02:21 pm
Binaries are automatically removed by OPM to prevent infection, this is especially important under windows. Since uos is a well known package, I will add the libraries back soon and the unit folder too. Thanks for the feedback.
are not supported at all.

Ha, ok.

I was thinking, at beginning of uos,  to give the binary libraries in /uos/release only.

But then uos is no more "working out of the box"  ( = load the *.lpi from /uos/examples, compile and run it.)
PS: The libraries are in /uos/examples/lib (and not in /uos/lib as said in previous mail).

By the way, this is detail of a package, your OPM is very impressive and works perfectly "out of the box" (and it is what I prefer).

Many congrats and thanks.

Fre;D
 
Title: Re: Online Package Manager
Post by: balazsszekely on August 08, 2017, 08:34:48 pm
@Fred vS
Done. The whole directory structure should be there now. Please test. Thank you.
Title: Re: Online Package Manager
Post by: Fred vS on August 08, 2017, 09:08:39 pm
@Fred vS
Done. The whole directory structure should be there now. Please test. Thank you.

Hello  GetMem.

OK, tested: perfect.
Also the French translation of OPM: perfect.

Many thanks.

Fre;D
Title: Re: Online Package Manager
Post by: JuhaManninen on August 08, 2017, 10:45:31 pm
Today we breake the "magic" barrier. There is more then 100 packages in the main repository. It was much harder then I initially thought...not so many Lazarus packages out there.
Congratulations!
How many of them are provided by the actual package author / maintainer and how many you have digged from around?
For the future of OPM repository it is important that each package maintainer is active.
Title: Re: Online Package Manager
Post by: balazsszekely on August 09, 2017, 06:36:01 am
@JuhaManninen
Quote
How many of them are provided by the actual package author.

About 30%, but the number is increasing.  I receive a new package(or a package update) through the "Submit" button every 1-2 weeks or so. I estimate that 40% of all packages are abandoned or not maintained properly. I will try to contact the remaining 30% as time permits, but some of them prefer not to collaborate(like WTS) which is perfectly fine. We cannot force package authors to join in if they don't want to.
Title: Re: Online Package Manager
Post by: molly on August 10, 2017, 12:45:54 am
@GetMem:
thank you for the confirmation.

fwiw with regards to your latest conversation with Juha:
That is why i appreciate the possibility to be able to use your own 'repository'. Some packages are indeed unmaintained/abandoned or authors have little interest for OPM. Let alone adding private components that unfortunately cannot always be made public.
Title: Re: Online Package Manager
Post by: valdir.marcos on August 10, 2017, 03:29:53 am
@JuhaManninen
Quote
How many of them are provided by the actual package author.

... I estimate that 40% of all packages are abandoned or not maintained properly. I will try to contact the remaining 30% as time permits, but some of them prefer not to collaborate (like WTS) which is perfectly fine. We cannot force package authors to join in if they don't want to.

@GetMem
When you finish contacting authors, can you publish a list of the packages needing maintainers?
Maybe an idea similar to what Debian does. I just linked it below:

how can I help
https://wiki.debian.org/how-can-i-help

Work-Needing and Prospective Packages
https://www.debian.org/devel/wnpp/

Debian Mentor's FAQ
https://wiki.debian.org/DebianMentorsFaq

Adopting a package
http://women.alioth.debian.org/involvement/adopting.en.html
Title: Re: Online Package Manager
Post by: balazsszekely on August 10, 2017, 07:04:24 am
@molly
Quote
That is why i appreciate the possibility to be able to use your own 'repository'. Some packages are indeed unmaintained/abandoned or authors have little interest for OPM. Let alone adding private components that unfortunately cannot always be made public.
The possibility to add private repositories is just around the corner. I need a few more weeks though.

@valdir.marcos
Quote
When you finish contacting authors, can you publish a list of the packages needing maintainers?
Yes.

Quote
Maybe an idea similar to what Debian does. I just linked it below:
Thank you for the links. It's a good idea. Let's hope others will join in.
Title: Re: Online Package Manager
Post by: inoussa on August 10, 2017, 01:35:08 pm
... but some of them prefer not to collaborate(like WTS) which is perfectly fine.

Hello,

I am the author of WST. I am very surprised and disappointed to read this. Where did I say or express any will not to collaborate ? This is just FUD.
Please you know you time, agenda, not mine, I am not at the moment able to provide this immediately, that does not mean I refuse to
collaborate.

Best regards.
Title: Re: Online Package Manager
Post by: balazsszekely on August 10, 2017, 02:41:55 pm
Hi inoussa,

First of all I'm not spreading FUD, because I'm not like that at all. Although you did not explicitly say it, I would like to explain why I came to the wrong conclusion that you're not interested:
1. Last year another forum member asked you on the WST support forum, if you can provide a package for OPM. Since then the request was repeated a few times without any result.
2. You did not respond to questions related to WST(aked by me and other in this forum)

Please note: I'm not judging you in any way. I do understand that people are busy and there are far more important things in life then Lazarus, forum questions and OPM. I'm glad you're interested and sorry for the misunderstanding.

regards,
GetMem

Title: Re: Online Package Manager
Post by: lainz on August 10, 2017, 08:22:50 pm
Hi GetMem,

I've made a change in the master of bgracontrols, and I want to notify the users for that change, for those who are using OPM of course.

This is the json
https://github.com/bgrabitmap/bgracontrols/blob/master/update_bgracontrols_force.json

Is that OK? I've changed force to true and increased the InternalVersion to 2.
Title: Re: Online Package Manager
Post by: balazsszekely on August 10, 2017, 10:01:21 pm
Hi lainz,

That is correct. If you did not use InternalVersion = 2 in the past, the notification should work fine. If it's not working please let me know.
Title: Re: Online Package Manager
Post by: lainz on August 10, 2017, 10:15:40 pm
Hi lainz,

That is correct. If you did not use InternalVersion = 2 in the past, the notification should work fine. If it's not working please let me know.

Thanks. It's working on 1.8RC3. I've tested on 1.6 and was not working, for that I asked.
Title: Re: Online Package Manager
Post by: cpicanco on August 10, 2017, 11:52:58 pm
Thanks. It's working on 1.8RC3. I've tested on 1.6 and was not working, for that I asked.

Is it working? I could install and use it. But after closing Lazarus, the "Online Package Manager" menu item disappears. In "Install Package" list, it is shown as "marked for installation but not installed.

PS.: Linux (*.deb) 1.8RC3.
Title: Re: Online Package Manager
Post by: lainz on August 10, 2017, 11:54:43 pm
Thanks. It's working on 1.8RC3. I've tested on 1.6 and was not working, for that I asked.

Is it working? I could install and use it. But after closing Lazarus, the "Online Package Manager" menu item disappears. In "Install Package" list, it is shown as "marked for installation but not installed.

PS.: Linux (*.deb) 1.8RC3.

It works. But not tested on Linux by myself.
Title: Re: Online Package Manager
Post by: cpicanco on August 10, 2017, 11:55:52 pm
Should I report this as a bug in the bugtracker?
Title: Re: Online Package Manager
Post by: lainz on August 10, 2017, 11:57:04 pm
Should I report this as a bug in the bugtracker?

I think is not neccessary, since the main developer check this forum regularly.
Title: Re: Online Package Manager
Post by: Phil on August 11, 2017, 12:42:00 am
Should I report this as a bug in the bugtracker?

I think is not neccessary, since the main developer check this forum regularly.

Has anyone tested OPM on Mac? I just looked at it now for the first time and there are some things that appear to be broken or at least I don't understand quite what's going on. With Laz 1.8RC3:

- Scrolling the main list doesn't work right. On a MacBook, scrolling is normally done via the trackpad. This is much faster than moving the mouse over to the scroll bar. But in the OPM control, scrolling with the trackpad just makes it jiggle.

- Clicking Help button does nothing.

- The initial order of the packages appears to be alphabetic, but then I see CodesigningHelper between LazBarcodes and LazRichView.

- Only the packages and rating columns are non-blank (and all ratings are 5 stars). Shouldn't there be something in the Repository and Status columns, or am I reading that wrong?

- Shouldn't the author and license info be listed when a package is expanded? I don't see this anywhere.

- Clicking on a package's URL does nothing. But double-clicking does. This is a non-standard way of handling an underlined link that looks like an HTML link.


Update:

- The bug with the Help button is probably because you're using OpenDocument. Use OpenURL instead. The help link is not a "document". Check other uses of OpenDocument.

- Another odd UI bug: At first I thought the folder button on the "Create repository package" dialog was broken, because you have to click it twice. Something wrong there.

- Don't exclude .json files by default. That's like excluding .xml. I couldn't figure out why the contents of the OPM .zip differed in size from my .zip so I went down the list file by file and discovered that .json files were left out.

- Do exclude by default .so, .dll, .dylib. See .gitignore for other examples of oddball files that sometimes creep into folders. And some packages uses "units" instead of "lib" so exclude that by default too.

- The wiki screenshot of "Create repository package" dialog looks nothing like what I see. I don't see any place to edit widgetsets supported, etc. So I guess changes need to be made in the resulting .json file manually. But then how to get back into the dialog to click Submit? And how to test the .json short of submitting it first?
Title: Re: Online Package Manager
Post by: balazsszekely on August 11, 2017, 07:02:22 am
@cpicanco
Quote
Is it working? But after closing Lazarus, the "Online Package Manager" menu item disappears. In "Install Package" list, it is shown as "marked for installation but not installed
If it's shown as "marked for installation" you have to rebuild Lazarus first. If you already done that, most likely you have a problem with the Lazarus installation not OPM itself. Please try to rebuild Lazarus with option "Clean all". If I remember correctly, not so long ago you had some issues with the component palette, it disappeared without any reason. Maybe the two are related and there is a broken config file in your system.  I want to take every OPM related bug seriously, but in this particular case I have a feeling that the issue is somewhere else. If you still consider is an OPM related bug, please tell me the exact linux distro, so I can install it in a VM and run a few tests. Thank you!
Title: Re: Online Package Manager
Post by: balazsszekely on August 11, 2017, 07:04:19 am
@Phil
Thanks for testing. Before I start, I would like to mention that until next week I don't have access to macOS 10.12 Sierra, so I did my testing with OSX 10.8 "Mountain Lion"(Lazarus trunk/FPC 3.0.2). I did test OPM in the past with Sierra, there is no difference as far as I can tell(regarding OPM).


Issues that I was abble to reproduce and fix:
Quote
- Clicking Help button does nothing.
- The bug with the Help button is probably because you're using OpenDocument. Use OpenURL instead. The help link is not a "document". Check other uses of OpenDocument.          
True. Replaced OpenDocument with OpenURL in r. 55648. Thanks.
Quote
- Don't exclude .json files by default. That's like excluding .xml. I couldn't figure out why the contents of the OPM .zip differed in size from my .zip so I went down the list file by file and discovered that .json files were left out.
- Do exclude by default .so, .dll, .dylib. See .gitignore for other examples of oddball files that sometimes creep into folders. And some packages uses "units" instead of "lib" so exclude that by default too.
Fixed in r. 55648. In order for the changes to take effect you have to click the "Restore Defaults" button(OPM-->Options).
Quote
- Clicking on a package's URL does nothing. But double-clicking does. This is a non-standard way of handling an underlined link that looks like an HTML link.
Fixed in r. 55649. Thanks.


Issues that I was unable to reproduce:
Quote
- The initial order of the packages appears to be alphabetic, but then I see CodesigningHelper between LazBarcodes and LazRichView.
See attachment1(PackageOrder.png).
Quote
- Only the packages and rating columns are non-blank (and all ratings are 5 stars). Shouldn't there be something in the Repository and Status columns, or am I reading that wrong?
- Shouldn't the author and license info be listed when a package is expanded? I don't see this anywhere.
In order to see detailed info about the package, you have to expand the tree(nodes). The ratings are disabled(grayed) be default. When you rate a package the stars change color. See attachment2(Rating_Authors.png).
Quote
- Another odd UI bug: At first I thought the folder button on the "Create repository package" dialog was broken, because you have to click it twice. Something wrong there.
It works fine at my side with a single click. It's a standard TDirectoryEdit component. Can you please test if TDirectoryEdit works on your computer? In a separate project.
Quote
The wiki screenshot of "Create repository package" dialog looks nothing like what I see. I don't see any place to edit widgetsets supported, etc. So I guess changes need to be made in the resulting .json file manually. But then how to get back into the dialog to click Submit? And how to test the .json short of submitting it first?
You have to select a package folder first, to be more precise the root directory of the package. After that all available *.lpk's are listed, with all the information available. See attachment3(CreatePackage.png)


Issues that I cannot test.
Quote
- Scrolling the main list doesn't work right. On a MacBook, scrolling is normally done via the trackpad. This is much faster than moving the mouse over to the scroll bar. But in the OPM control, scrolling with the trackpad just makes it jiggle.
Unfortunately I don't have a trackpad just a regular mouse so I cannot test(IMac). OPM uses VirtualStringTree(VST) to display the list of packages so it's probably a VST bug. I would like to mention that in my experience many components are broken under carbon. For example listview is basically unusable(please see the following thread: http://forum.lazarus.freepascal.org/index.php/topic,37581.msg252965.html#msg252965 ). VST works exceptionally well under win32/win64, gtk2 but apparently it has some minor issues under carbon. I will try to fix this issue as soon as possible(I need a trackpad first).


PS: I created a small video with OPM under OSX(please watch it in 720p): https://youtu.be/X1gD1aFhmow
PS1: It just occurred to me that maybe you don't see the + sign before each node. This issue might be caused by the latest changes in trunk related to high DPI. Especially true if you have retina display.
Title: Re: Online Package Manager
Post by: cpicanco on August 11, 2017, 05:29:48 pm
@GetMem, after installation of OPM and rebuilding Lazarus, everything was working just fine. However, when lazarus is closed, the OPM menu item is gone and the OPM package is marked as "not installed - marked to install". I can confirm that other packages installed through OPM (in  ~/.lazarus/onlinepackagemanager/packages/) are also marked as "marked to install". I am using Lazarus 1.8RC3 from the official *.deb files in a Debian 8 based distro (Bunden Labs). I am really not sure if it is related to Lazarus installation. Is there anything I can do to test this further??
Title: Re: Online Package Manager
Post by: cpicanco on August 11, 2017, 05:33:29 pm
In fact, it seems not related to OPM. After installation and rebuilding, other packages are being marked as "not installed - marked for installation". Maybe a Lazarus 1.8RC3 bug?
Title: Re: Online Package Manager
Post by: Phil on August 11, 2017, 05:41:02 pm
In fact, it seems not related to OPM. After installation and rebuilding, other packages are being marked as "not installed - marked for installation". Maybe a Lazarus 1.8RC3 bug?

You could try 1.8RC4. It's available now.
Title: Re: Online Package Manager
Post by: cpicanco on August 11, 2017, 06:37:37 pm
Here we go: https://bugs.freepascal.org/view.php?id=32262
Title: Re: Online Package Manager
Post by: Phil on August 11, 2017, 07:07:03 pm
Fixed in r. 55649. Thanks.

I can't find a way to update OPM inside OPM. Isn't that a rather obvious feature?

You're patching trunk. That's fine, but 1.8 is what people will be using, not trunk, so they need to be able to see that an update for OPM is available.

In the Create repository package dialog, there's something wrong with the focus. If I click in the lower (blank) panel, then I can click the folder button only once to bring up the selection dialog. I use this all the time, so it works fine on Mac, just not in OPM.

Also, in the dialog, the Cancel button should not be at the far right. See Apple guidelines for the default button placement.



Title: Re: Online Package Manager
Post by: cpicanco on August 13, 2017, 02:13:03 am
Hi,

Thanks to Juha Manninen finally lazarus is fully package happy with me. One should use "startlazarus" and not "lazarus-ide" to start the ide.

May I ask how many time it take to a package be included in the OPM list? Is there any addition protocol out there?

Thanks
Title: Re: Online Package Manager
Post by: cpicanco on August 13, 2017, 02:15:28 am
Also, is it a bug? Damn dark theme.
Title: Re: Online Package Manager
Post by: balazsszekely on August 13, 2017, 08:54:35 am
Hi guys,

Sorry for the late response, I was out from the office for a few days.

@Phil
Quote
I can't find a way to update OPM inside OPM. Isn't that a rather obvious feature?
Yes and no. It was possible in the past to update OPM inside OPM, but sometimes trunk development breaks code. I will add the feature again.
Quote
In the Create repository package dialog, there's something wrong with the focus. If I click in the lower (blank) panel, then I can click the folder button only once to bring up the selection dialog. I use this all the time, so it works fine on Mac, just not in OPM.
Also, in the dialog, the Cancel button should not be at the far right. See Apple guidelines for the default button placement.
I will address those issues next week. What about the other ones? Can you see the Authors, Descriptions? Is it a bug?


@cpicanco
Quote
Thanks to Juha Manninen finally lazarus is fully package happy with me. One should use "startlazarus" and not "lazarus-ide" to start the ide.
Ok. I'm glad it's working.  :)
Quote
May I ask how many time it take to a package be included in the OPM list? Is there any addition protocol out there?
Usually 24 h. max. Just create a repository package and send it via OPM. Please read more here: http://wiki.freepascal.org/Online_Package_Manager#Create_repository_package

Quote
Also, is it a bug? Damn dark theme.
Do you use some kind of theme manager? I never saw OPM that ugly  :D. Next week, I will add a new dialog where the user can choose colors.  Can you please post a few screenshot with other lazarus dialogs? Options for example, or Install/Uninstall packages.
Title: Re: Online Package Manager
Post by: cpicanco on August 14, 2017, 01:57:00 am
Quote
Do you use some kind of theme manager?

I am using the default openbox theme of BunsenLabs Hydrogen distro + a custom Monokai userscheme for lazarus.

Quote
I never saw OPM that ugly  :D. Next week, I will add a new dialog where the user can choose colors.  Can you please post a few screenshot with other lazarus dialogs? Options for example, or Install/Uninstall packages.

Here it is.
Title: Re: Online Package Manager
Post by: cpicanco on August 14, 2017, 01:57:52 am
Some more:
Title: Re: Online Package Manager
Post by: Xor-el on August 14, 2017, 09:01:07 am
Hello getmem, nice work you are doing with OPM, it is very well appreciated.
I did submit an update to an existing package in OPM through the OPM interface over 48 hrs ago but it has not been updated on the package list.
Just wanted to inform you incase you are not aware.
The package name is HashLib.
Regards.
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 09:38:12 am
Hi Xor-el,

Quote
I did submit an update to an existing package in OPM through the OPM interface over 48 hrs ago but it has not been updated on the package list.
Just wanted to inform you incase you are not aware.
The package name is HashLib.
Done.  Please test. Sorry for the delay.

Quote
nice work you are doing with OPM, it is very well appreciated.
Thank you!
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 09:56:25 am
I see I can install the Online Package Manager on arm-linux now? Can I safely do it? Otherwise it needs to be disabled for arm-linux because of the virtual treeview intel assembler used....

That (the virtual treeview) is a silly piece of code when less than ~1000 packages are available, so either disable the package for anything else than intel or FIX it... >:D >:(

OTOH I really like OPM (on windows that is....) O:-)
Title: Re: Online Package Manager
Post by: Xor-el on August 14, 2017, 10:19:12 am
Hi Xor-el,
Done.  Please test. Sorry for the delay.

Thanks.  :)
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 10:30:34 am
@GetMem
This somewhat works, but is not fully correct... Test for not intel instruction set e.g. CPU386/X64 should be false. Haven't time today to make a complete fix.
Suggest to reverse the logic and it should look ok.
Code: Pascal  [Select][+][-]
  1. {$else}
  2.  
  3. function HasMMX: Boolean;
  4.  
  5. // Helper method to determine whether the current processor supports MMX.
  6. {$if defined(CPUARM) }
  7. result := false;
  8. {$else}
  9. asm
  10.         PUSH    EBX
  11.         XOR     EAX, EAX     // Result := False
  12.         PUSHFD               // determine if the processor supports the CPUID command
  13.         POP     EDX
  14.         MOV     ECX, EDX
  15.         XOR     EDX, $200000
  16.         PUSH    EDX
  17.         POPFD
  18.         PUSHFD
  19.         POP     EDX
  20.         XOR     ECX, EDX
  21.         JZ      @1           // no CPUID support so we can't even get to the feature information
  22.         PUSH    EDX
  23.         POPFD
  24.  
  25.         MOV     EAX, 1
  26.         DW      $A20F        // CPUID, EAX contains now version info and EDX feature information
  27.         MOV     EBX, EAX     // free EAX to get the result value
  28.         XOR     EAX, EAX     // Result := False
  29.         CMP     EBX, $50
  30.         JB      @1           // if processor family is < 5 then it is not a Pentium class processor
  31.         TEST    EDX, $800000
  32.         JZ      @1           // if the MMX bit is not set then we don't have MMX
  33.         INC     EAX          // Result := True
  34. @1:
  35.         POP     EBX
  36. {$endif}
  37. end;
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 10:38:42 am
@Thaddy
The main problem is I don't have ARM-linux to test. Maybe a virtual machine? You should remove any HasMMX reference(like you did in the above example with ifdef) and build OPM. VirtualStringTree should work without MMX. Send me a patch and I will more then happy to apply it.

PS: The number of tasks I have it's overwhelming.
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 10:44:23 am
@Thaddy
The main problem is I don't have ARM-linux to test. Maybe a virtual machine? You should remove any HasMMX reference(like you did in the above example) and build OPM. VirtualStringTree should work without MMX. Send me a patch and I will more then happy to apply it.
Ok.
This patch is half... but it works... I'll create a better one later, but people can at least test on arm: works!
Code: Pascal  [Select][+][-]
  1. Index: components/onlinepackagemanager/vst/opkman_VirtualTrees.pas
  2. ===================================================================
  3. --- components/onlinepackagemanager/vst/opkman_VirtualTrees.pas (revision 55654)
  4. +++ components/onlinepackagemanager/vst/opkman_VirtualTrees.pas (working copy)
  5. @@ -2,6 +2,9 @@
  6.  
  7.  {$mode delphi}{$H+}
  8.  {$packset 1}
  9. +{$if defined(CPUARM)}
  10. +{$define PACKARRAYPASCAL}
  11. +{$endif}
  12.  
  13.  // Version 4.8.7
  14.  //
  15. @@ -4918,7 +4921,10 @@
  16.  function HasMMX: Boolean;
  17.  
  18.  // Helper method to determine whether the current processor supports MMX.
  19. -
  20. +{$if defined(CPUARM)}
  21. +begin
  22. +  result := false;
  23. +{$else}
  24.  asm
  25.          PUSH    EBX
  26.          XOR     EAX, EAX     // Result := False
  27. @@ -4946,7 +4952,9 @@
  28.          INC     EAX          // Result := True
  29.  @1:
  30.          POP     EBX
  31. +{$endif}
  32.  end;
  33. +
  34.  {$endif}
  35.  //----------------------------------------------------------------------------------------------------------------------
  36.  {$ifdef EnablePrint}
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 11:20:44 am
@Thaddy

Please attach the patch file, because my tortoise svn don't like copy/paste.  You can zip-it if you like.
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 11:24:34 am
@GetMem

Attached patch works on any  platform I have:
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 11:27:17 am
@Thaddy

Please attach the patch file, because my tortoise svn don't like copy/paste.  You can zip-it if you like.

See previous mail. Attached. Tested on arm-linux, and some intel flavors. Rather simple and it works... Tnks for your work, btw. OPM is a really nice to have feature! On ARM now!
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 11:36:55 am
Applied in r.55658.  Thank you Thaddy, this is really helpful.
Title: Re: Online Package Manager
Post by: JuhaManninen on August 14, 2017, 01:02:15 pm
GetMem, safe commits can still be backported to fixes_1_8 branch.
The ARM fix looks safe, as well as some other recent commits you made for OPM.
There will be no more release candidates, thus regressions should not be created.

The ARM fix is important because I have understood Lazarus otherwise works well there.
It should be included in the other VST versions, too.
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 01:07:31 pm
Since there was some issues lately(@cpicanco please test), custom drawing is disabled by default(screenshot1). Who likes the old interface better is still available(screenshot2) via the Options dialog.
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 01:11:04 pm
Quote
GetMem, safe commits can still be backported to fixes_1_8 branch.
The ARM fix looks safe, as well as some other recent commits you made for OPM.
There will be no more release candidates, thus regressions should not be created.

The ARM fix is important because I have understood Lazarus otherwise works well there.
It should be included in the other VST versions, too.
Thanks @Juha. What are the exact steps I need to take? From now on(I need an hours max) updating OPM will be possible through OPM itself, so the users don't need trunk in order to get the latest changes.
Title: Re: Online Package Manager
Post by: JuhaManninen on August 14, 2017, 01:26:54 pm
What are the exact steps I need to take?
Just copy the revision number and message here:
 http://wiki.freepascal.org/Lazarus_1.8_fixes_branch
in section "Submitted by developer / committer, tested, waiting to be merged".
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 01:27:55 pm
The ARM fix looks safe, as well as some other recent commits you made for OPM.
The  patch fixed not only arm, but also other platforms. It renders pure pascal code. I followed up on my own advise and reversed the logic.
It fixes anything not intel that has at least a supported widgetset for a lazarus install.

And... yes... Lazarus works like a dream on RPi....
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 01:59:03 pm
Note both asm optimizations are pretty useless on performance with current optimizations in FPC. It's about less than ~1% in -O4. I tested that too...
So actually the asm code should be removed. I will provide such a patch after 3.0.4.
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 02:05:14 pm
@Thaddy
Quote
Note both asm optimizations are pretty useless on performance with current optimizations in FPC. It's about less than ~1% in -O4. I tested that too...
So actually the asm code should be removed. I will provide such a patch after 3.0.4.
Those asm optimizations are old, I mean very old(delphi 6-7 era AFAIK). We just "inherited" them when @Luiz ported VST.
Title: Re: Online Package Manager
Post by: Phil on August 14, 2017, 02:07:42 pm
We just "inherited" them when @Luiz ported VST.

I note that VST does not have any Cocoa widgetset support. Probably not too big a deal now, but it's a future problem.
Title: Re: Online Package Manager
Post by: Phil on August 14, 2017, 02:09:35 pm
@Phil
Quote
I can't find a way to update OPM inside OPM. Isn't that a rather obvious feature?
Yes and no. It was possible in the past to update OPM inside OPM, but sometimes trunk development breaks code. I will add the feature again.

I'll test everything again once I can update OPM into Laz 1.8 RC4.
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 02:16:50 pm
@Thaddy
Quote
Note both asm optimizations are pretty useless on performance with current optimizations in FPC. It's about less than ~1% in -O4. I tested that too...
So actually the asm code should be removed. I will provide such a patch after 3.0.4.
Those asm optimizations are old, I mean very old(delphi 6-7 era AFAIK). We just "inherited" them when @Luiz ported VST.
So, should I give you that patch here and now? Can do, will do...It will be pure pascal. (I absolutely love  :-* ctrl-y)
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 02:26:11 pm
@Thaddy
Yes please, but you don't have to hurry. I won't be available until Wednesday. If you're ready sooner just ask Juha to apply the patch, I'm sure he will apply it.
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 02:32:53 pm
@Phil
Quote
I'll test everything again once I can update OPM into Laz 1.8 RC4.
Ok. Thanks. I wasn't able to implement everything.
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 02:50:41 pm
Patch. This one needs outside testing. Removed MMX altogether. Not useful. (provided compiler options knowledge, try -O4 -CfSSE2 or on ARM -CfVFPv3)....-s examine code)  No assembler code left. Pure pascal.
Title: Re: Online Package Manager
Post by: cpicanco on August 14, 2017, 05:32:14 pm
How should I test the last revision? I am getting an error when trying to install:

Quote
/home/rafael/svn/onlinepackagemanager/opkman_mainfrm.pas
opkman_mainfrm.pas(847,42) Error: identifier idents no member "UninstallPackage"
Title: Re: Online Package Manager
Post by: cpicanco on August 14, 2017, 05:41:11 pm
OPM updates it self?
Title: Re: Online Package Manager
Post by: Phil on August 14, 2017, 05:47:40 pm
OPM updates it self?

I thought that was planned, but apparently not. RC4 now shows OPM as a package (don't believe RC3 did), but it also shows it as being up-to-date, which can't be right since the RC4 OPM files are 3 months old.

Maybe we just have to be patient.

Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2017, 07:02:46 pm
Quote
OPM updates it self?

You can already find OPM in the available package list(the latest one), however you cannot update yet because many things has also changed lately in Lazarus trunk. For example in order to uninstall a package, OPM has to communicate with the built in package manager through packageintf interface(hence the uninstall error). This is why I said in one of my previous post that updating OPM from itself is a double-edged sword. I plan to fix all the remaining issues until 1.8 is out, including this one. If you wish to test the trunk version, please install a separate Lazarus instance with fpcdeluxe, it won't interfere with the current installation. Thanks.

@Juha
Can you please add the commit( related to package uninstall) to the 1.8 fixes branch? Currently I'm not in front of my dev. computer. Thank you.
Title: Re: Online Package Manager
Post by: Thaddy on August 14, 2017, 09:15:23 pm
OPM updates it self?
No. check out Lazarus svn and do a "build lazarus" from the menu. By now I also tested OSX (maybe a struggle -Phil? -but nothing to do with the patch) . Patch works for most (all I tested) platforms now, not just Intel. Note this is Lazarus trunk! Backports are up to managers to allow. Plz report back if it doesn't. Then its my fault 8)
But it is not related to uninstall issues...

Note the first patch attached (and applied) is safe... the second attachment needs testing by y'all, although I am pretty confident it enables more platforms than just arm.
Title: Re: Online Package Manager
Post by: lainz on August 18, 2017, 04:29:05 pm
Hi, there's now BGRAControls v4.3.2, it has the update feature in the json, but it will be nice if updated in the server of OPM.
https://github.com/bgrabitmap/bgracontrols/releases
Title: Re: Online Package Manager
Post by: mtournay on August 18, 2017, 10:53:28 pm
Hi

I have a problem updating BGRAControls through OPM.

yesterday I made code modification in some unit of the package for testing, then ask Lainz to incorporate them. He did that fast (thank again !) and publish a new release.
today, OPM said ther's a new version of bgra, so I check the package, click update button, download goes on, install next, rebuild laz, restart... and ... no changes, I still have my yesterday files.

Am I doing something wrong ?

My config : Laz 1.6.4, OPM 1.0 (says 'up to date' itself)

regards

edit : I didn't notice, but I have the same issue with kcontrol 1.7.0 (can't update to 1.7.1)
Title: Re: Online Package Manager
Post by: lainz on August 18, 2017, 11:16:40 pm
Hi

I have a problem updating BGRAControls through OPM.

yesterday I made code modification in some unit of the package for testing, then ask Lainz to incorporate them. He did that fast (thank again !) and publish a new release.
today, OPM said ther's a new version of bgra, so I check the package, click update button, download goes on, install next, rebuild laz, restart... and ... no changes, I still have my yesterday files.

Am I doing something wrong ?

My config : Laz 1.6.4, OPM 1.0 (says 'up to date' itself)

regards

edit : I didn't notice, but I have the same issue with kcontrol 1.7.0 (can't update to 1.7.1)

Try Lazarus 1.8 release candidate. That OPM works better.
Title: Re: Online Package Manager
Post by: mtournay on August 19, 2017, 10:00:15 pm
I'll do that next monday
Title: Re: Online Package Manager
Post by: cpicanco on August 19, 2017, 10:02:47 pm
mtournay Also make sure to execute lazarus using the "startlazarus" command  :D
Title: Re: Online Package Manager
Post by: balazsszekely on August 20, 2017, 10:02:10 pm
@mtournay

Quote
I didn't notice, but I have the same issue with kcontrol 1.7.0 (can't update to 1.7.1)
The author of Kcontrol has forget to update the actual lpk files. Take a look at the update JSON(Version = 1.7.1.0): https://bitbucket.org/tkweb/kcontrols/raw/ed0be8a985eb4030158356155668ac135e8b782b/laz_opm_update.json . After update the lpk file is still 1.7.0.0, but if you compare the files you can see there is a few differences(screenshot 1).   

BGRAControls should be the same. Just do a file by file comparison.
Title: Re: Online Package Manager
Post by: lainz on August 20, 2017, 10:06:28 pm
@mtournay

Quote
I didn't notice, but I have the same issue with kcontrol 1.7.0 (can't update to 1.7.1)
The author of Kcontrol has forget to update the actual lpk files. Take a look at the update JSON(Version = 1.7.1.0): https://bitbucket.org/tkweb/kcontrols/raw/ed0be8a985eb4030158356155668ac135e8b782b/laz_opm_update.json . After update the lpk file is still 1.7.0.0, but if you compare the files you can see there is a few differences(screenshot 1).   

BGRAControls should be the same. Just do a file by file comparison.

I can say I updated the lpk for BGRAControls, is the only thing I did in that commit, and also increasing the internal version of the updates json.
https://github.com/bgrabitmap/bgracontrols/commit/cccaab260092727ad64b889806a1eede3226817e

I already suggested him to update to the release candidate, where everything OPM related works better.
Title: Re: Online Package Manager
Post by: balazsszekely on August 20, 2017, 10:16:09 pm
@cpicanco

To test the "dark theme" bug please do the following:
1. Make a backup first
2. Download Lazarus.zip(attachment)
3. Copy file "packageintf.pas" to $(LazarusDir)/components/ideintf/ (replace the original)
4. Copy file "pkgmanager.pas" to $(LazarusDir)/packager/ (replace the original)
5. Rebuild Lazarus
6. Update OPM through OPM(ignore the version, it will be the same). Just click the install button.
7. Rebuild Lazarus again
8. Go to options, check "Use default theme manager"

Now everything should  go back to normal. OPM color scheme should match the theme manager color scheme.
Title: Re: Online Package Manager
Post by: balazsszekely on August 20, 2017, 10:18:47 pm
@lainz
Quote
I can say I updated the lpk for BGRAControls, is the only thing I did in that commit, and also increasing the internal version of the updates json.
https://github.com/bgrabitmap/bgracontrols/commit/cccaab260092727ad64b889806a1eede3226817e

I already suggested him to update to the release candidate, where everything OPM related works better.
Updating to release candidate is a good idea. A lot of fixes since 1.6, however the KControl issue still remains, I have no control on the update.json files.
Title: Re: Online Package Manager
Post by: cpicanco on August 21, 2017, 06:20:28 am
Much better! Except for font colors I guess. Maybe the problem is in the theme now. Anything else I can do?
Title: Re: Online Package Manager
Post by: balazsszekely on August 21, 2017, 06:32:13 am
@cpicanco
Quote
Much better! Except for font colors I guess. Maybe the problem is in the theme now. Anything else I can do?
Let me see what can I do about the font color(it should be white in your case), also the + _(expand/collapse) icons on top right are ugly. Thanks for testing.

@lainz
Quote
Hi, there's now BGRAControls v4.3.2, it has the update feature in the json, but it will be nice if updated in the server of OPM.
https://github.com/bgrabitmap/bgracontrols/releases
Somehow I missed your post. I updated BGRAControls in main repository.
Title: Re: Online Package Manager
Post by: DonAlfredo on September 06, 2017, 02:06:27 pm
I have added OPM into the standard install of fpcupdeluxe (v1.4.0l). Without option not to install it !
Thanks for a very nice tool.
Title: Re: Online Package Manager
Post by: balazsszekely on September 06, 2017, 02:41:00 pm
Quote
I have added OPM into the standard install of fpcupdeluxe (v1.4.0l). Without option not to install it !
Thanks for a very nice tool.
Thank you @DonAlfredo.
Title: Re: Online Package Manager
Post by: DonAlfredo on September 09, 2017, 09:46:21 am
Hello,

While using OPM, I did encounter a small quirk.
When trying to install a package through OPM, I saw that OPM uses the CPU and OS settings that are set for the current (opened) project in Lazarus.

Example.
Busy with cross-compiling fpcupdeluxe from Win towards Darwin QT5, I tried installing VTV through OPM. OPM started compiling/installing VTV for target Darwin/x86_64/QT5 on my Win 10 machine with FPC and Lazarus build for win32.

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on September 09, 2017, 12:16:24 pm
Hi DonAlfredo,

OPM uses the package interface($LazarusDir/components/ideintf/PackageIntf.pas) to compile, install packages.  The install function looks like this:
Code: Pascal  [Select][+][-]
  1. function InstallPackages(PkgIdList: TObjectList; Flags: TPkgInstallInIDEFlags = []): TModalResult;
Where the first parameter is a list with package id's, the second one is a set of install flag: piiifQuiet, piiifClear, piiifRebuildIDE, piiifSkipChecks,  piiifRemoveConflicts. So the target CPU and OS is decided by the IDE. I suppose this can be changed by modifying the "InstallPackages" function. Unfortunately I don't have too much experience with cross compiling.
Title: Re: Online Package Manager
Post by: DonAlfredo on September 09, 2017, 12:32:36 pm
Mmmm, that's a bummer ... I also did have a look at this function ... could not find how to change OS and CPU ... was therefor hoping that it would be an easy one for you !
I will look into it more closely.
Title: Re: Online Package Manager
Post by: balazsszekely on September 14, 2017, 02:55:28 pm
Hi All,

With r. 55859 private repositories are fully supported. The documentation is not ready yet, in order to test:
1. Open the private repository form(see screenshot)
2. Create a new repository, save it to an empty directory
3. Add/Delete packages
4. Copy the content of the folder to a local or remote server
5. Change repository address in "Option" form

Please test. Thank you!
Title: Re: Online Package Manager
Post by: molly on September 14, 2017, 07:24:26 pm
Excellent news GetMem !

Congratulations and many thanks for that.  :-*

Although being a new (but very welcome) feature is that perhaps something that could make it into final 1.8 release ?
Title: Re: Online Package Manager
Post by: JuhaManninen on September 14, 2017, 09:06:14 pm
Although being a new (but very welcome) feature is that perhaps something that could make it into final 1.8 release ?
No, only plain bug fixes are backported there now.
You can either use Lazarus trunk or download just the OPM from there and use it with 1.8.
Merging to 1.8.2 however is an option after some testing.
Title: Re: Online Package Manager
Post by: balazsszekely on September 14, 2017, 09:12:54 pm
Thanks @molly.
As @Juha said it's too late for 1.8.
The good news is OPM will be able to update itself after 1.8 final is out. The critical r54902 is already in merged revisions for 1.8 RC5. So nothing is lost.
Title: Re: Online Package Manager
Post by: molly on September 14, 2017, 09:24:16 pm
No, only plain bug fixes are backported there now.
I already suspected as such. No problem.

Quote
Merging to 1.8.2 however is an option after some testing.
I asked because i was bit worried to have to wait until the end of days to have this feature in a official release (i am aware that we can use trunk, a release is somewhat more convenient though). But /me is stupid, see below.

The good news is OPM will be able to update itself after 1.8 final is out. The critical r54902 is already in merged revisions for 1.8 RC5. So nothing is lost.
Aargh !, i feel so stupid. I haven't thought of OPM updating itself, as (also) some things were missing.

Thanks for letting know that it is already merged in (i seem to have missed that).
Title: Re: Online Package Manager
Post by: balazsszekely on September 15, 2017, 07:40:26 am
Private repositories on wiki: http://wiki.freepascal.org/Online_Package_Manager#Create_a_private_repository
Title: Re: Online Package Manager
Post by: lainz on September 19, 2017, 05:14:56 pm
Fresh Lazarus installation, the only thing I need to add is OPM and feel good ;)

Never was too easy for me.
Title: Re: Online Package Manager
Post by: balazsszekely on September 20, 2017, 05:29:36 am
Thanks for your support @lainz and for that nice webpage(https://packages.lazarus-ide.org/)
Title: Re: Online Package Manager
Post by: avra on September 27, 2017, 09:53:18 am
When behind a firewall, I get "Cannot download package list. Error message: Unexpected response status code: 407" and GUI says "No packages to show". For OPM I use the same proxy settings as in browser and I have checked proxy IP address, port, username and password many times, so I don't get it why proxy does not let OPM authenticate. From browser I can access without problems both http://packages.lazarus-ide.org and https://packages.lazarus-ide.org and download packages by hand. Was there a known bug with proxy access fixed in some newer version? That seams to be my best chance right now.

That Lazarus was made with fpcupdeluxe (FPC and LAZ trunks on May 17th) that had OPM working and updating on original pc with internet access without proxy, and now copied to the same dir on target pc but behind proxy.

View / IDE Internals / About FPC:
Lazarus version: 1.9.0
Lazarus svn revision: 54956M
Lazarus build date: 2017/05/17
Lazarus was compiled for i386-win32
Lazarus was compiled with fpc 3.1.1
Title: Re: Online Package Manager
Post by: balazsszekely on September 27, 2017, 12:11:57 pm
Hi avra,

In order to test if is a fpc bug or not, please try following code(change Host, Port, UserName and Password):
Code: Pascal  [Select][+][-]
  1. program project1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. uses
  6.   {$IFDEF UNIX}{$IFDEF UseCThreads}
  7.   cthreads,
  8.   {$ENDIF}{$ENDIF}
  9.   Classes,
  10.   fphttpclient
  11.   { you can add units after this };
  12.  
  13.  
  14. var
  15.   FHTTPClient: TFPHTTPClient;
  16. begin
  17.   FHTTPClient := TFPHTTPClient.Create(nil);
  18.   try
  19.     FHTTPClient.Proxy.Host:= 'Host';
  20.     FHTTPClient.Proxy.Port:= 8080;
  21.     FHTTPClient.Proxy.UserName:= 'user';
  22.     FHTTPClient.Proxy.Password:= 'pass';
  23.     FHTTPClient.Get('http://packages.lazarus-ide.org/packagelist.json', 'packagelist.json');
  24.     if FHTTPClient.ResponseStatusCode = 200 then
  25.       Writeln('Successfully downloaded')
  26.     else
  27.       Writeln('Cannot download file!');
  28.     Readln;
  29.   finally
  30.     FHTTPClient.Free;
  31.    end;
  32. end.

Thank you.
Title: Re: Online Package Manager
Post by: avra on September 27, 2017, 02:17:16 pm
In order to test if is a fpc bug or not, please try following code(change Host, Port, UserName and Password)
Thank you for your attention. If I literally copy/paste (and change host, ip, user and password) then this is the result:
Code: Pascal  [Select][+][-]
  1. An unhandled exception occurred at $00420979:
  2. EHTTPClient: Unexpected response status code: 407
  3.   $00420979
  4.   $00421341
  5.   $00421645
  6.   $00421BE5
  7.   $00421DB7
  8.   $00421E12
  9.   $00401850  main,  line 23 of project1.lpr
If I wrap try..except around HTTP GET command like this:
Code: Pascal  [Select][+][-]
  1.     try
  2.       FHTTPClient.Get('http://packages.lazarus-ide.org/packagelist.json', 'packagelist.json');
  3.     except
  4.       WriteLn('Exception catched');
  5.     end;
then the result is this:
Code: Pascal  [Select][+][-]
  1. Exception catched
  2. Cannot download file!
I can download that JSON file from the browser. I have checked ip, port, username and password many times and they are good.

UPDATE: If I enter empty strings for username and password the result is the same as above.
Title: Re: Online Package Manager
Post by: balazsszekely on September 27, 2017, 02:50:39 pm
It looks like an FPC bug.  %) I will run a few more test later.
Title: Re: Online Package Manager
Post by: balazsszekely on September 28, 2017, 09:41:28 am
@avra

What kind of proxy do you have? I ran a few test and unfortunately socks protocol is not supported/implemented in fpc(SOCKS4, SOCKS4a, SOCKS5), however HTTP proxy works well, I tested with and without password.
Title: Re: Online Package Manager
Post by: avra on September 28, 2017, 06:38:26 pm
What kind of proxy do you have?
According to IE it's http proxy. Now I am puzzled. It must be something on my side but I don't know what...
Title: Re: Online Package Manager
Post by: balazsszekely on September 28, 2017, 08:11:53 pm
Quote
According to IE it's http proxy. Now I am puzzled. It must be something on my side but I don't know what...
Firewall maybe? Try to add Lazarus to the whitelist.
Title: Re: Online Package Manager
Post by: avra on September 29, 2017, 03:29:43 pm
Quote
According to IE it's http proxy. Now I am puzzled. It must be something on my side but I don't know what...
Firewall maybe? Try to add Lazarus to the whitelist.
"Windows Firewall is using your domain settings". Although it seams that domain policy has changed recently, adding exceptions is allowed. Unfortunatelly it didn't help. I give up. Thanks for your effort.
 :'(
Title: Re: Online Package Manager
Post by: balazsszekely on September 29, 2017, 05:21:07 pm
@avra
You can still use OPM if you have a http server installed on your local computer, where no proxy is needed. If yes, please do the following:
1. Download the main repository from here: https://packages.lazarus-ide.org/opm.zip  (182 Mb)
2. Extract the zip to a folder, "packages" for example
3. Start the local server
4. Start OPM, go to Options-->Genereal-->Remote repository, click the "..." button, then add the following address: http://localhost/packages/  Close the dialog, select the local server, then click "OK"

Every time I update the main repository, I will also update the opm.zip file. Each time you wish to get the latest packages, you have to download and extract opm.zip. Still much better then installing manually 10-15 packages.
Title: Re: Online Package Manager
Post by: avra on October 02, 2017, 08:53:41 am
Download the main repository from here: https://packages.lazarus-ide.org/opm.zip  (182 Mb)
Thank you so much!  :D  8-)
I will download that from home and then try here.  ;)  :-X
Title: Re: Online Package Manager
Post by: AlexTP on October 02, 2017, 01:27:30 pm
I want to publish ATTabs - https://github.com/alexey-t/attabs , what files must I send?
Title: Re: Online Package Manager
Post by: balazsszekely on October 02, 2017, 01:36:57 pm
@Alextp
I will add ATTabs soon to the main repository.
Title: Re: Online Package Manager
Post by: AlexTP on October 02, 2017, 02:35:58 pm
Suggestion
- now we have "yellow box with green +" icons for all old packages
- wish: make it monotone: yellow box. its better.
Title: Re: Online Package Manager
Post by: wp on October 02, 2017, 03:56:51 pm
I was just opening OPM from today's Laz trunk / fpc 3.02 and get the error "Cannot download package list. Error messge: 'Connect to packages.lazarus-ide.org:80 failed'. Trying to do the same with Laz 1.8RC4 works correctly.
Title: Re: Online Package Manager
Post by: balazsszekely on October 02, 2017, 07:39:05 pm
@Alextp
I added ATTabs to the main repository. Thank you for submitting the component.

Quote
Suggestion
- now we have "yellow box with green +" icons for all old packages
- wish: make it monotone: yellow box. its better.
OPM has to distinguish between the 3 package type(meta package, new meta package and  lazarus package). See attachment. If the meta package icon is yellow, one can confuse it with a lazarus package.
Title: Re: Online Package Manager
Post by: balazsszekely on October 02, 2017, 07:41:57 pm
@wp
Quote
I was just opening OPM from today's Laz trunk / fpc 3.02 and get the error "Cannot download package list. Error messge: 'Connect to packages.lazarus-ide.org:80 failed'. Trying to do the same with Laz 1.8RC4 works correctly.

I did run a few test in three separate computer with Lazarus Trunk/FPC 3.0.2(windows, linux, osx). OPM runs fine. It must be something at your side or perhaps server packages.lazarus-ide.org was down for a short period of time.
Title: Re: Online Package Manager
Post by: AlexTP on October 06, 2017, 08:35:23 pm
@GetMem

1. please delete separate ATScrollbar, it is already inside ATButtons package, i deleted separate repo
2. please update your files for packages: ATButtons [files added/deleted], ATSynEdit, ATSynEdit_Ex, ATGauge, EControl
3. please add Python-for-Lazarus
http://wiki.freepascal.org/Using_Python_in_Lazarus_on_Windows/Linux
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2017, 11:11:39 am
@Alextp
Quote
1. please delete separate ATScrollbar, it is already inside ATButtons package, i deleted separate repo
2. please update your files for packages: ATButtons [files added/deleted], ATSynEdit, ATSynEdit_Ex, ATGauge, EControl
3. please add Python-for-Lazarus
http://wiki.freepascal.org/Using_Python_in_Lazarus_on_Windows/Linux

Done.  Now every package is up to date. To preserve consistency and match the version from lpk with the version from the update JSON, please change:
1. "Version" from 1.5.0.0 to 1.1.0.0 here: https://raw.githubusercontent.com/Alexey-T/laz-registry/master/update_ATButtons_ATListbox.json
2. "Version" from 1.0.4.0 to 1.0.0.0 here: https://raw.githubusercontent.com/Alexey-T/laz-registry/master/update_ATGauge.json
3. "Version" from 1.4.0.0 to 1.0.0.0 here: https://raw.githubusercontent.com/Alexey-T/laz-registry/master/update_ATSynEdit.json

If you don't change those values, users will see the "NEW" text, when in fact there is no new version. When you make some changes in the future always update the lpk files inside the zip. Thank you!
Title: Re: Online Package Manager
Post by: wp on October 07, 2017, 11:18:35 am
Quote
I was just opening OPM from today's Laz trunk / fpc 3.02 and get the error "Cannot download package list. Error messge: 'Connect to packages.lazarus-ide.org:80 failed'. Trying to do the same with Laz 1.8RC4 works correctly.

I did run a few test in three separate computer with Lazarus Trunk/FPC 3.0.2(windows, linux, osx). OPM runs fine. It must be something at your side or perhaps server packages.lazarus-ide.org was down for a short period of time.
Yes, running fine now.
Title: Re: Online Package Manager
Post by: AlexTP on October 07, 2017, 11:39:18 am
Thanks, updated versions.
Wish:
good if you moderate "description" lines (e.g. "Python4Lazarus" better -> "Wrapper for Python engine", and many others).
Title: Re: Online Package Manager
Post by: balazsszekely on October 07, 2017, 12:08:54 pm
@Alextp
Quote
good if you moderate "description" lines (e.g. "Python4Lazarus" better -> "Wrapper for Python engine", and many others).
OPM reads the description from the lpk files(see image). It's the package maintainer job to give a good description. I changed the value for PythonForLazarus.
Title: Re: Online Package Manager
Post by: avra on October 11, 2017, 11:56:56 am
Download the main repository from here: https://packages.lazarus-ide.org/opm.zip  (182 Mb)
Thank you so much!  :D  8-)
I will download that from home and then try here.  ;)  :-X
I can't make it work. I have started local http server and from browser I can download something like http://localhost/opm.offline/Abbrevia.zip without any problem. Then I have added http://localhost/opm.offline/ as a remote repository and selected it. However now I get error "Cannot download package list. Error message: Unexpected response status code: 404". I did turn off proxy in OPM for this test.
Title: Re: Online Package Manager
Post by: balazsszekely on October 11, 2017, 02:12:48 pm
@avra
Quote
I can't make it work.
This is my mistake, I forgot to include the json file(opm.zip is fixed now).  If you don't want to download the whole zip again, I attach the json. Please extract to the same directory.  Sorry for the inconvenience.
Title: Re: Online Package Manager
Post by: avra on October 11, 2017, 03:48:37 pm
Thanks, OPM can now see packages. I have to report that trying to install CeosMW, ExControls, ExDatabase, ExDesign, JvDesign, UserControl and EvsSimpleGraph can not succeed because those files do not exist in opm.zip. Also OpenGPSX depends on sdposeriallaz so after confirming that I want OPM to resolve this dependency OPM says it can not be found either. If I want to install only single package SDPO manually then nothing happens - not even an error. Like Install is a dead button. When I select some other package it works. All on WinXP SP3.
Title: Re: Online Package Manager
Post by: balazsszekely on October 11, 2017, 04:02:46 pm
Those are the exact packages that I added a a few days ago(oct 10), if you downloaded the opm.zip before, then you should download it again. After all it's not too big: 200 Mb, of course this depends on your internet speed.
Title: Re: Online Package Manager
Post by: AlexTP on October 12, 2017, 09:21:59 am
- ExControls - desc it short like "Visual controls". can you list all controls in desc?
- ExDesign  - typo and also can you list all?
Title: Re: Online Package Manager
Post by: AlexTP on October 12, 2017, 09:33:00 am
New icons [bmp and lrs files] not shown in IDE for: ATButtons [class ATButtonsToolbar] and ATTabs.
Title: Re: Online Package Manager
Post by: wp on October 12, 2017, 10:55:15 am
- ExControls - desc it short like "Visual controls". can you list all controls in desc?
- ExDesign  - typo and also can you list all?
I think it is not ok that a package installation system modifies the provided packages in any way. I can understand that the description of many packages is very minimalistic or even non-existent, but it is not GetMem's job to fix this. If you want something to be changed then contact the package author.
Title: Re: Online Package Manager
Post by: AlexTP on October 12, 2017, 01:40:44 pm
And IMO: opkman should moderate these descriptions.

Bug report.
Linux x64 gtk2 [Ubuntu 16]. Confirm message "do you want to restart IDE" shows below OPM dialog. It's not visible until i alt-tab to IDE.
Title: Re: Online Package Manager
Post by: cpicanco on October 12, 2017, 11:34:01 pm
Can we use OPM as a "library" to build autoupdate functionality to a program?
Title: Re: Online Package Manager
Post by: balazsszekely on October 13, 2017, 11:02:40 am
@cpicanco
Quote
Can we use OPM as a "library" to build autoupdate functionality to a program?
Search for LazAutoUpdate component(OPM), it was designed exactly for this kind of functionality. For more details please contact forum user @minesadorada . He's the author of the package.
Title: Re: Online Package Manager
Post by: balazsszekely on October 13, 2017, 11:23:21 am
@Alextp
Quote
And IMO: opkman should moderate these descriptions.
I hope you didn't expect me to go through all the packages, test their functionality then write a detailed description.  Other then the large amount of work isn't ethical...I mean modifying the description(or any other property) without the consent of the package developer is an asshole thing to do. Perhaps it would be OK to modify those packages that are not maintained, but what if the package developer comes back? Actually I already did modified some of the unmaintained packages and I feel slightly wrong about it.

Bug report.
Quote
Linux x64 gtk2 [Ubuntu 16]. Confirm message "do you want to restart IDE" shows below OPM dialog. It's not visible until i alt-tab to IDE.
The dialog "do you want to restart the IDE" is called by Lazarus through IDECommand, basically I do:
Code: Pascal  [Select][+][-]
  1. IDECommands.ExecuteIDECommand(Self, ecBuildLazarus);
The rest is up to Lazarus. I have no control over the dialog visibility.
Title: Re: Online Package Manager
Post by: AlexTP on October 13, 2017, 11:58:31 am
But you can close Opkman dialog, before calling IDE messagebox. maybe on Linux only.
Title: Re: Online Package Manager
Post by: balazsszekely on October 13, 2017, 12:07:46 pm
But you can close Opkman dialog, before calling IDE messagebox. maybe on Linux only.
Yes I can do that, but what if the user choose NOT to rebuild Lazarus? OPM is already closed, Lazarus is not rebuilding, is a weird scenario. Perhaps a better solution would be to implement a ecBuildLazarusNoConfirmation, where the confirmation is skipped inside Lazarus. Then I can ask the user from OPM itself, I don't have to rely on the implementation from Lazarus main unit.
Title: Re: Online Package Manager
Post by: cpicanco on October 13, 2017, 12:36:06 pm
@cpicanco
Quote
Can we use OPM as a "library" to build autoupdate functionality to a program?
Search for LazAutoUpdate component(OPM), it was designed exactly for this kind of functionality. For more details please contact forum user @minesadorada . He's the author of the package.

Thanks!
Title: Re: Online Package Manager
Post by: tr_escape on October 15, 2017, 11:58:23 am
Hello Online Package Manager team,

In good internet connection I can use this feature but if my connection isn't good it can be very painful for me.

Because (I think) time outs very short and if there are some problems linux mint desktop can be destroy/collapse.

Ofcourse I can download all packages from the http://packages.lazarus-ide.org/ but I would like to install in the lazarus.

Best regards
Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2017, 12:18:21 pm
Hi tr_escape,

You can still use OPM if you have a http server installed on your local computer. If yes, please do the following:
1. Download the main repository from here: https://packages.lazarus-ide.org/opm.zip (you need a good connection for this, the zip file is relatively large ~190 MB)
2. Extract the zip to a folder, "packages" for example
3. Start the local server
4. Start OPM, go to Options-->Genereal-->Remote repository, click the "..." button, then add the following address: http://localhost/packages/  Close the dialog, select the local server, then click "OK"
Title: Re: Online Package Manager
Post by: JuhaManninen on October 15, 2017, 12:57:29 pm
In good internet connection I can use this feature but if my connection isn't good it can be very painful for me.
Because (I think) time outs very short ...
Where is the timeout delay defined? It should be longer, similar to what browsers and FTP clients have.
Title: Re: Online Package Manager
Post by: tr_escape on October 15, 2017, 01:13:20 pm
In good internet connection I can use this feature but if my connection isn't good it can be very painful for me.
Because (I think) time outs very short ...
Where is the timeout delay defined? It should be longer, similar to what browsers and FTP clients have.


 PackageDownloader.DownloadJSON(10000);

https://github.com/graemeg/lazarus/blob/upstream/components/onlinepackagemanager/opkman_mainfrm.pas#L260

I changed to my local lazarus to 60000 but also not solving directly my problems because my computer isn't very fast.
I think the thread methods must be change to switch-case for succesing.

Unfortunately in the world we haven't got good conditions for communication :(


Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2017, 01:32:14 pm
The json is only 320 KB. 10 sec should be more then enough even with a slow internet connection. Your second screenshot indicates that you have no connection at all. Please check my previous post, it's a good workaround using a local server. You have to download the opm.zip only once.

PS: Nowadays a good internet connection should be something trivial. I also leave in a pretty crappy country, still the internet speed is very good.
Title: Re: Online Package Manager
Post by: tr_escape on October 15, 2017, 02:53:08 pm
The json is only 320 KB. 10 sec should be more then enough even with a slow internet connection. Your second screenshot indicates that you have no connection at all. Please check my previous post, it's a good workaround using a local server. You have to download the opm.zip only once.

PS: Nowadays a good internet connection should be something trivial. I also leave in a pretty crappy country, still the internet speed is very good.

Ok I will try and downloading...

So actually I can do all of this manually of course but when I use any software I am looking as a end user even newbie developer.

If happen any unwanted step in my software as looking end user it will be happen again...

I collect another warnings too when attemp to connect from lazarus to http://packages.lazarus-ide.org/.

Lazarus going to go endless loop.

But I am downloading opm.zip with by firefox there is no connection problem this means there is a/some problem(s) in the package man.

However I will change the my local codes if I get success I'll share.
I also will try to local web server too.
Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2017, 03:31:22 pm
What is your Lazarus/FPC/OPM version?
OPM uses fphttpclient(FPC) to communicate with the main repository. It is possible that TFPHTTPClient/OPM still has some bugs, but until now I never saw a single connection issue. That doesn't mean your problem is not real, probably on low internet speed strange things start to happen. Please try to debug the code and find out where it fails, but first run the following code and tell me what happens:
Code: Pascal  [Select][+][-]
  1. program project1;
  2.  
  3.  {$mode objfpc}{$H+}
  4.  
  5.  uses
  6.    {$IFDEF UNIX}{$IFDEF UseCThreads}
  7.    cthreads,
  8.    {$ENDIF}{$ENDIF}
  9.    Classes,
  10.    fphttpclient
  11.    { you can add units after this };
  12.  
  13.  
  14.  var
  15.    FHTTPClient: TFPHTTPClient;
  16.  begin
  17.    FHTTPClient := TFPHTTPClient.Create(nil);
  18.    try
  19.      FHTTPClient.Get('http://packages.lazarus-ide.org/packagelist.json', 'packagelist.json');
  20.      if FHTTPClient.ResponseStatusCode = 200 then
  21.        Writeln('Successfully downloaded')
  22.      else
  23.        Writeln('Cannot download file!');
  24.      Readln;
  25.    finally
  26.      FHTTPClient.Free;
  27.     end;
  28.  end.

PS: In r. 56059 you can configure the timeout(see attached image).
Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2017, 04:06:20 pm
@avra
https://bugs.freepascal.org/view.php?id=32551   :D

OPM has a local copy of fphttpclient, I fixed the issue there(r. 56060). If you use fpc3.1.1 or newer you must fix it in fpc source or wait until the official patch. I used "123" both for username and password in my original test, this is why it worked.  :-[
Title: Re: Online Package Manager
Post by: tr_escape on October 15, 2017, 05:38:40 pm
I working with by fpc and lazarus trunk and downloaded by fpcupdeluxe 1.4.0s

I tried the example project it gives Esocketerrors

Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2017, 06:06:13 pm
Quote
tr_escape
I tried the example project it gives Esocketerrors
This is obviously a connection problem at your side. How Firefox manage to work in this condition is a mystery to me.
Title: Re: Online Package Manager
Post by: tr_escape on October 15, 2017, 09:06:15 pm
Quote
tr_escape
I tried the example project it gives Esocketerrors
This is obviously a connection problem at your side. How Firefox manage to work in this condition is a mystery to me.

Actually there is no mystery , there is a history about internet connection.

Ok. I little looked up the TFPHTTPClient component it designed for single operation for succesful connection, if any trouble happens it wont work.
Thats my problem :)

My advise to component owner create some retry_cnt methods like as redirection.

Also I tried the local web server apache2 it gives some error too. I can download from my webserver but I couldn't unpack step.
I think online pack man is not good for old PCs.

Thanks for attention

Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2017, 10:13:02 pm
@tr_escape
Quote
Ok. I little looked up the TFPHTTPClient component it designed for single operation for succesful connection, if any trouble happens it wont work.
Thats my problem :)
My advise to component owner create some retry_cnt methods like as redirection.
He does not follow this forum as far as I know. If you want something to be done about it, you should file a bugreport here: https://bugs.freepascal.org/view_all_bug_page.php
Quote
Also I tried the local web server apache2 it gives some error too. I can download from my webserver but I couldn't unpack step.
I think online pack man is not good for old PCs.
May I ask how old the computer is? I have a Pentium 4 with XP. Not so long ago I did run a few tests and OPM worked well. It was slow though.

PS: Does somebody else have issues with the connection? With extracting, installing packages?
Title: Re: Online Package Manager
Post by: avra on October 15, 2017, 11:25:15 pm
But I am downloading opm.zip with by firefox there is no connection problem
Do you happen to use proxy in your Firefox?
Title: Re: Online Package Manager
Post by: tr_escape on October 16, 2017, 06:54:19 am
But I am downloading opm.zip with by firefox there is no connection problem
Do you happen to use proxy in your Firefox?

No I haven't got any proxy also I can use a lot of software in my linux too like as transmission,teamviewer,other browsers.

I'll report more detail soon (12 hour later from now).
Title: Re: Online Package Manager
Post by: tr_escape on October 16, 2017, 06:58:52 am
@tr_escape
Quote
Ok. I little looked up the TFPHTTPClient component it designed for single operation for succesful connection, if any trouble happens it wont work.
Thats my problem :)
My advise to component owner create some retry_cnt methods like as redirection.
He does not follow this forum as far as I know. If you want something to be done about it, you should file a bugreport here: https://bugs.freepascal.org/view_all_bug_page.php
Quote
Also I tried the local web server apache2 it gives some error too. I can download from my webserver but I couldn't unpack step.
I think online pack man is not good for old PCs.
May I ask how old the computer is? I have a Pentium 4 with XP. Not so long ago I did run a few tests and OPM worked well. It was slow though.

PS: Does somebody else have issues with the connection? With extracting, installing packages?

Core duo and 1GB Ram I have two harddisk one is linux and other is windows 7.
Actually I will try some new attemps like as changing update of syncronize(@xxx);

Because I created other sofware as gui basis of your example it is worked 6 times of 10 times correctly.

Title: Re: Online Package Manager
Post by: AlexTP on November 07, 2017, 09:03:36 pm
Please delete packages
-ATBUttons/ATListbox
-ATGauge
Code is moved into ATFlatControls new package, add it
https://github.com/Alexey-T/ATFlatControls
Title: Re: Online Package Manager
Post by: balazsszekely on November 08, 2017, 06:11:29 pm
@Alextp
Thanks. I will change it in a few days(very busy lately).
Title: Re: Online Package Manager
Post by: tudi_x on November 13, 2017, 11:23:21 am
i do not know if this is the right place but would it be possible to assess the functionality of opening in the default OS browser the home page of a package in the package info section with a click on it?
copy to clipboard is good but better would be to open the default browser.
thank you
Title: Re: Online Package Manager
Post by: Thaddy on November 13, 2017, 11:27:30 am
Why would that be better? I don't even have a default browser.....
Title: Re: Online Package Manager
Post by: balazsszekely on November 13, 2017, 11:50:19 am
Hi tudi_x,

Quote
i do not know if this is the right place
Yes, it's the right place.

Quote
Would it be possible to assess the functionality of opening in the default OS browser the home page of a package in the package info section with a click on it?
copy to clipboard is good but better would be to open the default browser.
I'm not sure what you mean. If you go over the home page link, the text color becames blue, a hint with the link appears. If you click the blue link the page is opened in the default browser(see attachment). This is how it works from day one, except the single click, initially it was double click.

PS If it's not working please let me know.

regards,
GetMem
Title: Re: Online Package Manager
Post by: tudi_x on November 13, 2017, 12:05:15 pm
hi GetMem,
everything happens up to the click. i need a double click to open default browser.
using Win 7, Lazarus 64b 1.8 RC5.
could you assess to actually change the cursor to a hand? this is what i see google does. keep same user experience (although they do not have the hint)...
thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on November 13, 2017, 12:10:32 pm
@tudi_x
If you're using Lazarus 1.8 RC5 you can update OPM from itself. Just check OnlinePackageManager then click install. After rebuild please try the link again with single click.

PS: Yes, I can do the cursor thing but only in trunk. It won't make it to Lazarus 1.8 final. It's a new feature not a bugfix. It will be available though through the auto update feature.
Title: Re: Online Package Manager
Post by: Thaddy on November 13, 2017, 12:11:29 pm
Under Windows the double click is the default as per the Windows design guidelines. Since Laz on Windows uses the WinApi this becomes also the default for OPM unless devels want to override that behavior. (Which I strongly discourage, just like a single click should be the default on a MAC)
Title: Re: Online Package Manager
Post by: balazsszekely on November 13, 2017, 12:13:30 pm
@Thaddy

True. Initially it was double click, but then a lot of people asked for single click. I guess it's just a personal preference.
Title: Re: Online Package Manager
Post by: Thaddy on November 13, 2017, 12:16:41 pm
@Thaddy

True. Initially it was double click, but then a lot of people asked for single click. I guess it's just a personal preference.

No it isn't <a bit grumpy  >:D>: it is sticking to design guidelines for the widgetset.
But I have no problem with it if OPM is standardized to single click. Because it is a programmer's tool, not an end-user tool. That would be worrying...
Title: Re: Online Package Manager
Post by: Pascal on November 13, 2017, 12:23:03 pm
Hello GetMem,

i am developing a One-Click-Profiler-Addon for the IDE. I would like to know if you allso would add test(alpha/beta) versions to OPM? If yes, what information do you need? Do i have to host the package myself?

Sorry, i am really to lazy to read all the pages of this topic. Maybe you can start a read only topic with all of the current information.

Regards
Pascal
Title: Re: Online Package Manager
Post by: tudi_x on November 13, 2017, 12:33:59 pm
@GetMem
upgraded to 1.0.1.2. confirming working with single click on Win 7.
thank you also for this time saving tool!
Title: Re: Online Package Manager
Post by: balazsszekely on November 13, 2017, 01:58:38 pm
@Pascal
Quote
i am developing a One-Click-Profiler-Addon for the IDE. I would like to know if you allso would add test(alpha/beta) versions to OPM?
Yes.
Quote
If yes, what information do you need?
A link to the zipped package.
Quote
Do i have to host the package myself?
No. It will be hosted in the main repository. Once you have a stable version and you wish to add an auto-update feature, then you need to host a zip + a json file somewhere. For more info please read this section: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates  For now I need a temporary link to your package.


@tudi_x
I added the HandPoint cursor. Please update OPM again and test. The version info(1.0.1.2) is the same.
Title: Re: Online Package Manager
Post by: tudi_x on November 13, 2017, 02:02:22 pm
@GetMem
tested the change of cursor. working also for me.
thank you
Title: Re: Online Package Manager
Post by: Pascal on November 16, 2017, 09:12:41 pm
Just uploaded first beta of LazProfiler  :D
Title: Re: Online Package Manager
Post by: balazsszekely on November 16, 2017, 09:53:46 pm
@Pascal
Quote
Just uploaded first beta of LazProfiler  :D
Great! Thanks. I added to the main repository.
Title: Re: Online Package Manager
Post by: Pascal on November 17, 2017, 05:40:40 am
@Pascal
Quote
Just uploaded first beta of LazProfiler  :D
Great! Thanks. I added to the main repository.
Hmm...I still can't see it in OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on November 17, 2017, 05:44:21 am
Quote
Hmm...I still can't see it in OPM.
Please check again. Should be visible by now.
Title: Re: Online Package Manager
Post by: Pascal on November 17, 2017, 05:51:07 am
Quote
Hmm...I still can't see it in OPM.
Please check again. Should be visible by now.
Yes, thanks! I would have expected a flash as icon as it is new. Or is it only for updated packages?
Title: Re: Online Package Manager
Post by: balazsszekely on November 17, 2017, 06:08:23 am
Quote
Yes, thanks! I would have expected a flash as icon as it is new. Or is it only for updated packages?
By default a flash icon appears in front of a package if:
1. The package was added/modified in less then 31 days(can be configured)
2. The package is not installed(can be configured)
This behaviour was explicitly asked by a user(see attachment).
Title: Re: Online Package Manager
Post by: Pascal on November 17, 2017, 08:14:54 am
Okay, so it has regular icon because it's installed here. Thanks. Makes sense.
Title: Re: Online Package Manager
Post by: balazsszekely on November 17, 2017, 10:27:12 am
@Pascal
I did try to install LazProfiler through OPM. It failed because OPM wasn't able to correctly resolve all package dependency. It was a bug unnoticed until now. Anyway I fixed the issue in r.56424, however I still cannot install LazProfiler, it has nothing to do with OPM this time, if I open the package with the IDE the error is the same(see attached image).
It compiles fine, the problem is on install.
Title: Re: Online Package Manager
Post by: Pascal on November 17, 2017, 11:16:05 am
Hmm...I just uninstalled my addon and reinstalled it by using OPM and it works as expected.
I will try a clean checkout later.

I found a bug in your installation recognition. I uninstalled my Addon and OPM still shows "installed".
I removed the sources from components directory and restarted Lazarus and OPM show "not installed".

Could it be that you scan the components directory?

Title: Re: Online Package Manager
Post by: balazsszekely on November 17, 2017, 11:57:28 am
Quote
Hmm...I just uninstalled my addon and reinstalled it by using OPM and it works as expected.
I will try a clean checkout later.
I just found out the reason why the install fails. I have many Lazarus environment for testing purposes. Initially I ran my test on a 64 bit Lazarus where it fails. It works fine on 32 bit Lazarus though and I like it. Very nicely done @Pascal! I will run additional tests in the weekend.

Quote
I found a bug in your installation recognition. I uninstalled my Addon and OPM still shows "installed".
I removed the sources from components directory and restarted Lazarus and OPM show "not installed".
OPM installs the packages to Lazarus config folder not $(LazarusDir)/component folder. This is needed because in some linux distribution the component folder is read only.
I did try to install the package to the component folder manually, then with OPM to the config folder. I cannot reproduce the issue. Again I will run additional tests later.
Title: Re: Online Package Manager
Post by: Pascal on November 17, 2017, 12:17:59 pm
Quote
I found a bug in your installation recognition. I uninstalled my Addon and OPM still shows "installed".
I removed the sources from components directory and restarted Lazarus and OPM show "not installed".
OPM installs the packages to Lazarus config folder not $(LazarusDir)/component folder. This is needed because in some linux distribution the component folder is read only.
I did try to install the package to the component folder manually, then with OPM to the config folder. I cannot reproduce the issue. Again I will run additional tests later.
No, that's not what i meant! OPM states that LazProfiler is installed but it's not installed. See Screenshots of my previous post.
Title: Re: Online Package Manager
Post by: balazsszekely on November 17, 2017, 03:58:17 pm
@pascal
Quote
No, that's not what i meant! OPM states that LazProfiler is installed but it's not installed. See Screenshots of my previous post.
I did understand the issue, I also saw the screenshots. The problem is I cannot reproduce it myself. After 10 package install/uninstall OPM still behaves correctly. Of course that doesn't mean you findings are not real. I will keep trying.
Title: Re: Online Package Manager
Post by: Pascal on November 17, 2017, 05:27:22 pm
@pascal
Quote
No, that's not what i meant! OPM states that LazProfiler is installed but it's not installed. See Screenshots of my previous post.
I did understand the issue, I also saw the screenshots. The problem is I cannot reproduce it myself. After 10 package install/uninstall OPM still behaves correctly. Of course that doesn't mean you findings are not real. I will keep trying.
Okay, then i did not understand you  :)

Maybe you can try this:
During developement i created the package under components in the Lazarus directory and installed it manually.
Then, when testeing OPM, i uninstalled through package window and recompiled Lazarus.
After restart OPM still shows "installed". So the first install and uninstall was done manually.

Btw OPM is a verry, very good addon i like it very much!
Title: Re: Online Package Manager
Post by: GAN on November 18, 2017, 03:32:21 am
Hi, I've translated OLPM to Spanish. Attached file.

Best regards.
Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2017, 05:58:32 am
@Pascal
Thanks. I did try your method with no success. The strange thing is I ask the IDE to check if a package is installed or not, so it must be some kind of refresh problem in OPM:
Code: Pascal  [Select][+][-]
  1. var
  2.   Package: TIDEPackage;
  3. begin
  4.    for I := 0 to PackageEditingInterface.GetPackageCount - 1 do
  5.    begin
  6.      Package := PackageEditingInterface.GetPackages(I);
  7.      if ExtractFileName(Package.FileName) = ALazarusPkg.Name then
  8.      begin
  9.        //package is installed
  10.      end;
  11.   end;
  12. end;

Once I can reproduce the issue, I will check why the code fails.

@GAN
Thank you! I added a request to the bugtracker. Your translation will be soon available in Lazarus trunk.
Title: Re: Online Package Manager
Post by: Pascal on November 18, 2017, 08:10:12 am
@Pascal
Thanks. I did try your method with no success. The strange thing is I ask the IDE to check if a package is installed or not, so it must be some kind of refresh problem in OPM:
Code: Pascal  [Select][+][-]
  1. var
  2.   Package: TIDEPackage;
  3. begin
  4.    for I := 0 to PackageEditingInterface.GetPackageCount - 1 do
  5.    begin
  6.      Package := PackageEditingInterface.GetPackages(I);
  7.      if ExtractFileName(Package.FileName) = ALazarusPkg.Name then
  8.      begin
  9.        //package is installed
  10.      end;
  11.   end;
  12. end;

Once I can reproduce the issue, I will check why the code fails.

Okay, i'll also have a try.
Title: Re: Online Package Manager
Post by: lainz on November 19, 2017, 12:20:00 am
Hi GetMem, there's a possible fix for a component RxDBLookupCombo
https://forum.lazarus.freepascal.org/index.php/topic,38981.msg266283/topicseen.html#new

I don't know how to contact the developer or where is his main repository. The site linked in the wiki is dead. The CCR site I don't know also who is mantaining it so I'm asking you for this.
Title: Re: Online Package Manager
Post by: howardpc on November 19, 2017, 09:00:48 pm
@GetMem
I think I spotted a very minor bug in the file opkman_downloader.pas at line 226.
It should be
Code: Pascal  [Select][+][-]
  1. if Assigned(FOnPackageDownloadProgress) then

But not worth sending a patch for such a simple typo.
Title: Re: Online Package Manager
Post by: balazsszekely on November 19, 2017, 10:47:58 pm
@lainz
Quote
I don't know how to contact the developer or where is his main repository. The site linked in the wiki is dead. The CCR site I don't know also who is mantaining it so I'm asking you for this.
I don't know who is the original maintainer. I will soon fix the bug in the main repository. Thank you.

@howardpc
Thank you! Fixed in r.56438.
Title: Re: Online Package Manager
Post by: howardpc on November 19, 2017, 11:29:50 pm
Just noticed another typo. Not a bug, but an unnecessary double assignment.
In opkman_timer.pas line 63 is a duplicate of line 61.
Title: Re: Online Package Manager
Post by: wp on November 20, 2017, 12:02:27 am
I don't know how to contact the developer or where is his main repository. The site linked in the wiki is dead. The CCR site I don't know also who is mantaining it so I'm asking you for this.

Which wiki site are you talking of? The one that I bookmarked (http://wiki.lazarus.freepascal.org/RXfpc) links to the correct CCR repository. It is actively maintained by alexs75, last commit on Nov 14 (this year, of course...).
Title: Re: Online Package Manager
Post by: lainz on November 20, 2017, 12:41:57 am
I don't know how to contact the developer or where is his main repository. The site linked in the wiki is dead. The CCR site I don't know also who is mantaining it so I'm asking you for this.

Which wiki site are you talking of? The one that I bookmarked (http://wiki.lazarus.freepascal.org/RXfpc) links to the correct CCR repository. It is actively maintained by alexs75, last commit on Nov 14 (this year, of course...).

This link that is in the wiki
http://alexs75.narod.ru/fpc/rxfpc/
Title: Re: Online Package Manager
Post by: balazsszekely on November 20, 2017, 07:22:28 am
@howardpc
Thank you. Fixed in r. 56440.

@lainz
If the package is actively maintained(as @wp mentioned) then please contact the author to fix the bug. I will refresh the package in the main repository, once a fix is available.
Title: Re: Online Package Manager
Post by: lainz on November 20, 2017, 03:00:53 pm
@lainz
If the package is actively maintained(as @wp mentioned) then please contact the author to fix the bug. I will refresh the package in the main repository, once a fix is available.

Ok. Done.
Title: Re: Online Package Manager
Post by: Pascal on November 21, 2017, 12:38:47 pm
I get an AV when opening OPM (r56451):
Code: Text  [Select][+][-]
  1. TApplication.HandleException Access violation
  2.   Stack trace:
  3.   $0062EC59  TXMLCONFIG__INTERNALFINDNODE,  line 553 of laz2_xmlcfg.pas
  4.   $0062E147  TXMLCONFIG__SETVALUE,  line 307 of laz2_xmlcfg.pas
  5.   $0062E21A  TXMLCONFIG__SETDELETEVALUE,  line 324 of laz2_xmlcfg.pas
  6.   $00CA0ABF  TUPDATES__SAVE,  line 329 of opkman_updates.pas
  7.   $00CA18E6  TUPDATES__PAUSEUPDATE,  line 567 of opkman_updates.pas
  8.   $00C82A9D  TMAINFRM__STARTUPDATES,  line 201 of opkman_mainfrm.pas
  9.   $00C82982  TMAINFRM__FORMCREATE,  line 186 of opkman_mainfrm.pas
  10.   $00430B5D  TCUSTOMFORM__DOCREATE,  line 939 of ./include/customform.inc
  11.   $0042EFAA  TCUSTOMFORM__AFTERCONSTRUCTION,  line 149 of ./include/customform.inc
  12.   $0043560E  TFORM__CREATE,  line 3151 of ./include/customform.inc
  13.   $00C82792  IDEMENUSECTIONCLICKED,  line 43 of onlinepackagemanagerintf.pas
  14.   $0072E0F9  TIDEMENUITEM__MENUITEMCLICK,  line 547 of menuintf.pas
  15.   $00730BC5  TIDEMENUCOMMAND__MENUITEMCLICK,  line 1705 of menuintf.pas
  16.   $0058C640  TMENUITEM__CLICK,  line 83 of ./include/menuitem.inc
  17.   $0058CCAF  TMENUITEM__DOCLICKED,  line 280 of ./include/menuitem.inc
  18.   $0040F251  TOBJECT__DISPATCH,  line 674 of c:/freepascal/fpc/trunk/rtl/inc/objpas.inc
  19.   $00542B7B  WINDOWPROC,  line 2676 of ./win32/win32callback.inc
Title: Re: Online Package Manager
Post by: Pascal on November 21, 2017, 02:26:24 pm
In r56458 i get:
Code: Text  [Select][+][-]
  1. TApplication.HandleException Access violation
  2.   Stack trace:
  3.   $2234BF04
  4.   $00CA02B4  TUPDATES__CREATE,  line 247 of opkman_updates.pas
  5.   $00C82A79  TMAINFRM__STARTUPDATES,  line 199 of opkman_mainfrm.pas
  6.   $00C82972  TMAINFRM__FORMCREATE,  line 186 of opkman_mainfrm.pas
  7.   $00430B5D  TCUSTOMFORM__DOCREATE,  line 939 of ./include/customform.inc
  8.   $0042EFAA  TCUSTOMFORM__AFTERCONSTRUCTION,  line 149 of ./include/customform.inc
  9.   $0043560E  TFORM__CREATE,  line 3151 of ./include/customform.inc
  10.   $00C82782  IDEMENUSECTIONCLICKED,  line 43 of onlinepackagemanagerintf.pas
  11.   $0072E1A9  TIDEMENUITEM__MENUITEMCLICK,  line 547 of menuintf.pas
  12.   $00730C75  TIDEMENUCOMMAND__MENUITEMCLICK,  line 1705 of menuintf.pas
  13.   $0058C640  TMENUITEM__CLICK,  line 83 of ./include/menuitem.inc
  14.   $0058CCAF  TMENUITEM__DOCLICKED,  line 280 of ./include/menuitem.inc
  15.   $0040F251  TOBJECT__DISPATCH,  line 674 of c:/freepascal/fpc/trunk/rtl/inc/objpas.inc
  16.   $00542B7B  WINDOWPROC,  line 2676 of ./win32/win32callback.inc
  17.   $0064AFDD  CUSTOMFORMWNDPROC,  line 386 of ./win32/win32wsforms.pp
  18.   $7575E0BB
  19.   $75768849

I just start Lazarus and select menu "Package > Online Package Manger".
Title: Re: Online Package Manager
Post by: balazsszekely on November 21, 2017, 02:33:59 pm
@Pascal
Quote
I get an AV when opening OPM (r56451).
I'm afraid OPM trunk will be unstable for a while. We are linking the two package system together with @Juha. The idea is to make OPM a natural extension of the built in packager.  The error you mentioned, was caused by OPM's update feature, I disabled it for a while in r.56459. There may be other issues too.
Title: Re: Online Package Manager
Post by: Pascal on November 21, 2017, 02:46:27 pm
Okay, no matter.
Title: Re: Online Package Manager
Post by: RDL on November 25, 2017, 12:46:31 pm
Hi
Lazarus is installed in Linux.
Install through OPM indy10.
When you add any server component to the form, lazarus hangs.

Sorry for my English.
translate.google
Title: Re: Online Package Manager
Post by: balazsszekely on November 25, 2017, 02:24:12 pm
Hi RDL,

Welcome to the forum. Which version of Lazarus/ FPC do you use?
Title: Re: Online Package Manager
Post by: RDL on November 25, 2017, 03:26:24 pm
GetMem,
Lazarus 1.6.4
FPC 3.0.2
x86_64-linux-gtk 2
onlinepackagemanager1.6.zip
Title: Re: Online Package Manager
Post by: balazsszekely on November 25, 2017, 03:58:14 pm
I added indy trunk. Please try again.
Title: Re: Online Package Manager
Post by: RDL on November 25, 2017, 04:37:55 pm
GetMem,
Thank you. Now everything works.
Only other the icons of the components.
But I think this is already a question not to you, but to developers indy.
Thanks again!

Sorry for my English.
translate.google
Title: Re: Online Package Manager
Post by: RDL on November 25, 2017, 04:58:07 pm
Can I find out why the VitrualTreeView 5.5.3R1 component is not automatically installed, but only compiled?
Title: Re: Online Package Manager
Post by: balazsszekely on November 25, 2017, 05:06:46 pm
Quote
Can I find out why the VitrualTreeView 5.5.3R1 component is not automatically installed, but only compiled?
We made a lot of changes lately to OPM. The packagelist.json from the central repository was also modified. It should work now, please test again.
Title: Re: Online Package Manager
Post by: RDL on November 25, 2017, 05:10:21 pm
GetMem,
Now everything works.
Good work. Thank.
Title: Re: Online Package Manager
Post by: Remy Lebeau on November 28, 2017, 09:49:23 pm
Only other the icons of the components.
But I think this is already a question not to you, but to developers indy.

That would be me.  Contact me privately.
Title: Re: Online Package Manager
Post by: RDL on November 30, 2017, 03:32:56 am
hi.
again in the repository version of indy 5434.
Why did the version of the trunk disappear? 5440?
Title: Re: Online Package Manager
Post by: Remy Lebeau on November 30, 2017, 04:36:46 am
again in the repository version of indy 5434.
Why did the version of the trunk disappear? 5440?

What is posted in OPM is *not* an official release from the Indy team, so it is a little behind.

The current nightly zip at http://indy.fulgan.com/ZIP is rev 5438.

The current SVN trunk is rev 5443.
Title: Re: Online Package Manager
Post by: RDL on November 30, 2017, 05:34:54 am
Remy Lebeau,
In my projects, indy 5434 does not work correctly.
Indy 5440 worked correctly. Can I get it? (5440 or 5443)
Title: Re: Online Package Manager
Post by: Cyrax on November 30, 2017, 07:25:41 am
Remy Lebeau,
In my projects, indy 5434 does not work correctly.
Indy 5440 worked correctly. Can I get it? (5440 or 5443)

If your main OS is Windows, install TortoiseSVN (https://tortoisesvn.net/) and use it to check out Indy sources.
Title: Re: Online Package Manager
Post by: RDL on November 30, 2017, 07:51:01 am
Cyrax, Thank.
Remy Lebeau, i sent you a private message.
Title: Re: Online Package Manager
Post by: lainz on November 30, 2017, 03:15:04 pm
Hi GetMem, reporting that everything is working fine!

Also I made a few updates to BGRAControls, if you can upload this new release to the main repository. BTW the external updates feature is working fine.
Title: Re: Online Package Manager
Post by: balazsszekely on November 30, 2017, 10:03:13 pm
@Remy Lebeau
Quote
What is posted in OPM is *not* an official release from the Indy team, so it is a little behind.
The current nightly zip at http://indy.fulgan.com/ZIP is rev 5438.
The current SVN trunk is rev 5443.
It is from now on. Although the Code Typhon fork looked nice, with high quality icons, in many cases not worked properly as @RDL and others reported before. I decided to add Indy trunk to OPM a week a go(r. 5440).  Still a little bit behind, but at least is the official release. @Remy would you consider to change the old icons when time permits(I know you're very busy)?

@lainz
Quote
Also I made a few updates to BGRAControls, if you can upload this new release to the main repository. BTW the external updates feature is working fine.
Thank you! I will update it as soon as possible. Now we are trying to link the two package system together. For example, when you add a package dependency to your project, Lazarus will also search for packages in the main repository. At least this is the idea(see attachment). The feature requires a lot of changes both in OPM and the internal Package System. For a while I will be unable to update the central repository.
Title: Re: Online Package Manager
Post by: lainz on November 30, 2017, 10:46:38 pm
Wow a great feature! Keep going.  :)
Title: Re: Online Package Manager
Post by: Remy Lebeau on December 01, 2017, 12:09:49 am
It is from now on. Although the Code Typhon fork looked nice, with high quality icons, in many cases not worked properly as @RDL and others reported before.

I don't know anything about Indy "not working properly", but I was planning on incorporating CT's newer icons into Indy's SVN, but hadn't gotten to it yet, and then Embarcadero recently offered to update Indy's icons with their own high-quality replacements (as they are working on new icons for their own components).  So Indy will definitely be getting new icons in the near future.

I decided to add Indy trunk to OPM a week a go(r. 5440).  Still a little bit behind, but at least is the official release.

Well, not *official* from me, anyway.  But as long as it stays relatively up-to-date from the SVN trunk or nightly mirror, then OK.
Title: Re: Online Package Manager
Post by: lainz on December 10, 2017, 04:28:36 pm
@lainz
Quote
Also I made a few updates to BGRAControls, if you can upload this new release to the main repository. BTW the external updates feature is working fine.
Thank you! I will update it as soon as possible. Now we are trying to link the two package system together. For example, when you add a package dependency to your project, Lazarus will also search for packages in the main repository. At least this is the idea(see attachment). The feature requires a lot of changes both in OPM and the internal Package System. For a while I will be unable to update the central repository.

I see, now I noticed that the external updates are not working. Just in case is not an intentional change, but I'm sure is because you're working on stuff for the OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2017, 04:51:28 pm
@lainz
I completely forgot about BGRAControls. Sorry for that.  :-[ I just updated the main repository. Please test.

Quote
I see, now I noticed that the external updates are not working. Just in case is not an intentional change, but I'm sure is because you're working on stuff for the OPM.
Yes updates are disabled for a while in Lazarus trunk, with a regular 1.8 install should work fine.

PS: If you have trunk, can you please test the new feature(see attached image)? Install a package directly from the "New requirement" dialog?
 
Title: Re: Online Package Manager
Post by: lainz on December 10, 2017, 06:48:54 pm
I have a build made with FPCUpDeluxe. I did not remember than updating Lazarus takes a lot of time on an existent installation! But it does it automatically so I don't need to install svn or anything else (No reporting bugs in the bugtracker since a lot of time - almost all fixed btw). Edit: I must buy a SSD.

Getting back into theme, the installation of the package BGRAControlsFX from the new requirement menu works fine.

I have a question, I several times get an error opening projects when packages are not installed. Maybe this new feature can be used to detect missing dependency and install them instead of throwing a lot of error messages?
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2017, 07:35:31 pm
Quote
I have a build made with FPCUpDeluxe. I did not remember than updating Lazarus takes a lot of time on an existent installation! But it does it automatically so I don't need to install svn or anything else (No reporting bugs in the bugtracker since a lot of time - almost all fixed btw). Edit: I must buy a SSD.
A SSD makes a big difference. Lazarus builds much much faster.

Quote
Getting back into theme, the installation of the package BGRAControlsFX from the new requirement menu works fine.
Thanks for testing. I'm glad it's working.

Quote
I have a question, I several times get an error opening projects when packages are not installed. Maybe this new feature can be used to detect missing dependency and install them instead of throwing a lot of error messages?
This is the next step, I hope it will be ready soon.
Title: Re: Online Package Manager
Post by: lainz on December 11, 2017, 02:23:17 am
Great job!

Also I noticed that Windows Defender is doing the lazarus rebuild slower.. not just the HD.
Title: Re: Online Package Manager
Post by: BeanzMaster on December 12, 2017, 02:18:04 pm
Hi to all i transmit a message from the french forum :

Quote
With the SVN version I had it for some time and there are a lot of obsolete packages that have lost their dependencies or who lack one or two files to settle. I think it would require a small household.

For example i can't install LazProfiler, the dependancy VirtualTreeview not want to install.

I give you more informations. On wich package don't working well
Title: Re: Online Package Manager
Post by: balazsszekely on December 12, 2017, 02:44:19 pm
Hi BeanzMaster,

We are rewriting a large part of OPM. SVN won't work properly for a while. The goal is to make OPM a natural extension of the build in package manager(see screnshot1). For SVN users I recommend to update OPM via OPM, so you will get the latest stable version, the same is shipped with Lazarus 1.8

PS: Before you install a package, please check: Lazarus/FPC compatibility, supported widgetset(see screenshot2).  Some package may not work with your current OS/Lazarus/FPC.  If you find a broken package, please report it here, I will fix it as soon as possible, usually in less then 24 hour. If a package has a new version somewhere else, please leave a message in this thread or send it via "Submit" button(http://wiki.freepascal.org/Online_Package_Manager#Create_repository_package).  There are more then 130 package in the central repository, I cannot check every package each day, it's not realistic.

regards,
GetMem
Title: Re: Online Package Manager
Post by: BeanzMaster on December 12, 2017, 10:42:42 pm
Thanks for the answer. I'm understanding, you've already make a huge work  8)
I'm waiting callback from some french users of a list of packages. I'll post here

Thanks
Title: Re: Online Package Manager
Post by: lainz on December 13, 2017, 10:41:54 pm
Hi GetMem, I did some changes in new BGRAControls v4.4 so Linux users don't need to install anything to run BGRAControls by default. This is the changelog:

Quote
Since v4.4 the components TBCDefaultThemeManager, TBCKeyboard and TBCNumericKeyboard are not installed by default to allow Linux users to get a seamless installation with the Online Package Manager, not installing third party stuff. If you want these components turn on the "Register unit" in the package options for each file (bcdefaulthememanager.pas, bckeyboard.pas, bcnumerickeyboard.pas) then compile and rebuild Lazarus. On Linux you need to install libxtst-dev and libgl-dev first.

If you can please update the package in the Online Package Manager so anyone interested can benefit from it.

Also I know that some components did not install as well on macOS (these virtual keyboard controls) due to don't have proper working code in 'mouseandkeyinput' that is shipped with bgracontrols, don't know if the one shipped with lazarus has a fix for that.

BTW these controls I think no one is using them, but if one is using can easily turn them on.

I did not need to install libgl-dev because I not checked the opengl package from BGRABitmap.
Title: Re: Online Package Manager
Post by: balazsszekely on December 14, 2017, 07:00:59 am
Hi lainz,

Quote
I did some changes in new BGRAControls v4.4 so Linux users don't need to install anything to run BGRAControls by default. This is the changelog:
If you can please update the package in the Online Package Manager so anyone interested can benefit from it.
Done. Please test.

PS: I made some progress with OPM integration. When a package is not installed, but available online, project inspector will display it with different icon and text(as in the image). By double clicking the missing package you can download/install it. Can you or somebody else please test it? Thanks.
Title: Re: Online Package Manager
Post by: lainz on December 14, 2017, 02:19:17 pm
Thankyou. Sure, I will test it now, just let me update with fpcupdeluxe, I will report it here in this same message.

Done! Working very well, installed bgracontrolsfx with no problems at all.
Title: Re: Online Package Manager
Post by: balazsszekely on December 14, 2017, 02:59:40 pm
Quote
Done! Working very well, installed bgracontrolsfx with no problems at all.
Thank you lainz.
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2017, 07:59:47 pm
There is a new feature in OPM. If you move the mouse over the meta packages(root node) and hold the SHIFT down, a new hint window will appear. The window will show the license/description of every lazarus package belonging to the current meta package. This is useful because you don't have to expand the tree node to get the data. Please test. As always feedback is more then welcome.
Title: Re: Online Package Manager
Post by: wp on December 20, 2017, 08:43:02 pm
Nice feature. But shouldn't the popup close when I release the SHIFT button?
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2017, 10:12:38 pm
Quote
Nice feature. But shouldn't the popup close when I release the SHIFT button?
Thanks wp, implemented in r. 56810. When the shift is released, OPM waits a little bit before closing the hint window. This is needed when the user choose to scroll the License/Description memos, or choose to navigate between different lpk files. If the mouse is over the hintform, the form remains visible.
Title: Re: Online Package Manager
Post by: wp on December 20, 2017, 10:42:03 pm
Perfect, thank you.

Here's another one - but maybe not related to OPM, in this case I'd write a bug report: In the "Install/Uninstall packages" dialog, right list, I have some duplicate packages - in addition to those seen on the screenshot also attabspackage, lazcolorpalette, playwavepackage. I had these packages installed for some time from my local ccr folder, but uninstalled them later.
Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2017, 02:07:54 pm
@wp
Do you see the duplicate packages each time you open "Install/Uninstall" dialog? If yes please go to Package-->Package Links. Uncheck Global and Online links. What do you see in user links list, there is duplicate "rx" packages. Are those links valid?  What happens if you delete the invalid ones, then reopen "Install/Uninstall" dialog?
Title: Re: Online Package Manager
Post by: minesadorada on December 21, 2017, 02:28:26 pm
There is a new feature in OPM. If you move the mouse over the meta packages(root node) and hold the SHIFT down, a new hint window will appear. The window will show the license/description of every lazarus package belonging to the current meta package. This is useful because you don't have to expand the tree node to get the data. Please test. As always feedback is more then welcome.
Just updated my Laz Trunk install.
That's a good improvement, and works perfectly for me.  It was awkward to see the descriptions before.

Windows 10 64 bit/Lazarus trunk 56811M 32-bit
Title: Re: Online Package Manager
Post by: wp on December 21, 2017, 02:29:16 pm
Yes, reproducible.

Let me focus on the rx* packages of the previous screenshot:
I am attaching screenshots of Package Links with and without Global and Online Links checked.

What's interesting is that when I delete the previously installed packages from the Package Links (i.e. the #2 links in the list above) then I still get the same list in Install/Uninstall packages as in the screenshot of the previous post.
Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2017, 02:58:55 pm
Hmm, I'm not sure how it suppose to work in this case. Please uninstall OPM for a moment, the internal packager will go back to default behaviour.
Title: Re: Online Package Manager
Post by: wp on December 21, 2017, 04:09:07 pm
Some experiments:
As a summary I'd conclude: Whenever a package which exists in an online version is installed from a local repository and uninstalled later then will be listed in the Install/Uninstalled dialog twice. This does not happen for global links.


Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2017, 05:27:33 pm
Thanks wp. Your findings are very useful!  On startup, if OPM is installed, every online package gets "converted" to a package link. When a user opens the "Install/Uninstall packages" dialog, the online package links are automatically added to the "Available for installation" list, except for those that are already installed. I need to do an extra check and verify if the package is not in the user links too. Apparently a user link will be active even after you uninstall the package and most likely you can add it to a project "Required packages" list. I will fix this issue soon. Thanks again.



Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2017, 05:29:10 pm
@minesadorada
Quote
Just updated my Laz Trunk install.
That's a good improvement, and works perfectly for me.  It was awkward to see the descriptions before.
Thanks for the feedback. I'm glad it's working.
Title: Re: Online Package Manager
Post by: wp on December 29, 2017, 09:57:44 am
Thanks wp. Your findings are very useful!  On startup, if OPM is installed, every online package gets "converted" to a package link. When a user opens the "Install/Uninstall packages" dialog, the online package links are automatically added to the "Available for installation" list, except for those that are already installed. I need to do an extra check and verify if the package is not in the user links too. Apparently a user link will be active even after you uninstall the package and most likely you can add it to a project "Required packages" list. I will fix this issue soon. Thanks again.
Now I noted another issue with the "Install/uninstall packages" dialog related to the duplicate packages. As you know I am working on fpspreadsheet, trunk version; the release version is offered by OPM. Recently I had to uninstall the visual package of fpspreadsheet-trunk for some reason. When I wanted to install it back via the "Install/uninstall packages" dialog I saw the two duplicate entries, both pointing to the OPM version, but no link to the trunk version any more. So, the only way to reinstall the trunk version is loading the lpk file.

I also saw that OPM offers version 1.8.2, but my current release is 1.8.4. Is this due to the temporarily disabled updates that you mentioned somewhere above?
Title: Re: Online Package Manager
Post by: balazsszekely on December 29, 2017, 03:29:05 pm
Quote
Now I noted another issue with the "Install/uninstall packages" dialog related to the duplicate packages. As you know I am working on fpspreadsheet, trunk version; the release version is offered by OPM. Recently I had to uninstall the visual package of fpspreadsheet-trunk for some reason. When I wanted to install it back via the "Install/uninstall packages" dialog I saw the two duplicate entries, both pointing to the OPM version, but no link to the trunk version any more. So, the only way to reinstall the trunk version is loading the lpk file.
I disabled temporarily the online packages from the "Install/Uninstall packages" dialog. Showing online package there is wrong in my opinion, the same is true with local packages in OPM dialog.

Quote
I also saw that OPM offers version 1.8.2, but my current release is 1.8.4. Is this due to the temporarily disabled updates that you mentioned somewhere above?
Yes. I updated fpspreadsheet in the main repository. Now the default version is 1.8.4
Title: Re: Online Package Manager
Post by: avra on January 02, 2018, 01:38:37 pm
EDIT: Message deleted and moved to a new thread:
http://forum.lazarus.freepascal.org/index.php/topic,39508.msg

Related to creating ct4laz repo and providing CodeTyphon specific components to OPM users.
Title: Re: Online Package Manager
Post by: aducom on January 02, 2018, 01:56:34 pm
I have nothing to comment the above. I'm quite fond of the online package manager, it was a huge step forward in my opinion (FWIW). I have a few feature requests though. First I think it should be default in the IDE. Now you have to install it first from the package manager first, easy to be overlooked. Second, I would welcome a short description off the package. There is a wiki page, but ...
 
Title: Re: Online Package Manager
Post by: balazsszekely on January 02, 2018, 05:38:48 pm
@aducom
Quote
I'm quite fond of the online package manager, it was a huge step forward in my opinion (FWIW).
Thanks.

Quote
I have a few feature requests though. First I think it should be default in the IDE.
It's too late for Lazarus 1.8. Most likely will be default in the next major release.

Quote
I would welcome a short description off the package. There is a wiki page, but ...
Done.
Title: Re: Online Package Manager
Post by: lainz on January 19, 2018, 02:49:22 pm
Hi @GetMem, you can add BGRAControls 4.4.0.3 to repository?

And a question, in trunk updating is working again or we must wait? working =)

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on January 19, 2018, 04:37:03 pm
Quote
Hi @GetMem, you can add BGRAControls 4.4.0.3 to repository?
Done.

Update feature is up and running again from 03 January.
Title: Re: Online Package Manager
Post by: lainz on January 19, 2018, 04:48:16 pm
Quote
Hi @GetMem, you can add BGRAControls 4.4.0.3 to repository?
Done.

Update feature is up and running again from 03 January.

Thanks.

Also tested the feature that installs all dependencies when opening a project, installed 4 packages nicely.
Title: Re: Online Package Manager
Post by: balazsszekely on January 19, 2018, 06:43:33 pm
Thanks lainz. You can also check the new requirement dialog(project inspector-->Required Packages-->Add) when you have some free time. You can add Online Packages from there too. 
Title: Re: Online Package Manager
Post by: lainz on January 19, 2018, 07:04:24 pm
Thanks lainz. You can also check the new requirement dialog(project inspector-->Required Packages-->Add) when you have some free time. You can add Online Packages from there too.

Working fine. Installed Box2D in a new project with no problems.
Title: Re: Online Package Manager
Post by: lainz on January 20, 2018, 03:33:13 pm
@GetMem, today @circular released BGRABitmap 9.6 and I BGRAControls 4.5 (with all fixes from him).

https://github.com/bgrabitmap/bgrabitmap/releases/tag/v9.6
https://github.com/bgrabitmap/bgracontrols/releases/tag/v4.5

BGRAControls needs that newer version of BGRABitmap to work.
Title: Re: Online Package Manager
Post by: balazsszekely on January 20, 2018, 04:18:05 pm
@lainz
Done. Tested both on windows and linux. Works fine.
Title: Re: Online Package Manager
Post by: esvignolo on January 20, 2018, 05:53:04 pm
@getmem @lainz Tested on macos. Work fine too.

@lainz
Done. Tested both on windows and linux. Works fine.
Title: Re: Online Package Manager
Post by: lainz on January 21, 2018, 10:56:11 pm
@lainz
Done. Tested both on windows and linux. Works fine.

Thanks.

@getmem @lainz Tested on macos. Work fine too.

@lainz
Done. Tested both on windows and linux. Works fine.

Thanks.
Title: Re: Online Package Manager
Post by: M.A.R.C. on February 04, 2018, 06:44:36 am
Hi @GetMem, I submit to your email address the link to the JSON file to update uEControls.

I post here also:  http://ue.accesus.com/uecontrols/update_UEControls.json
The official Git repository for the package is: https://github.com/mriscoc/uEControls

Thank you for your great work

MARC
Title: Re: Online Package Manager
Post by: balazsszekely on February 04, 2018, 08:30:00 am
Thank you MARC. I updated the main repository.
Title: Re: Online Package Manager
Post by: balazsszekely on February 04, 2018, 02:49:41 pm
@MARC
Unfortunately there was a small bug in OPM, so updating uecontrols with the "Update" button failed. Now it's fixed and available in Lazarus trunk. I also added to the merge request for 1.8.2: http://wiki.freepascal.org/Lazarus_1.8_fixes_branch#Submitted_by_developer_.2F_committer.2C_tested.2C_waiting_to_be_merged it will be available in the next release.
Title: Re: Online Package Manager
Post by: lainz on February 05, 2018, 03:48:21 pm
Hi GetMem, you can see here:
http://forum.lazarus.freepascal.org/index.php/topic,39919.msg275462.html#msg275462

alexs75 improved his package.

I need that in OPM, because I use that to install his package.

You can talk with him if can be released that SVN? At least will be enough to use the Update button if a new release is not possible.

Thanks =)
Title: Re: Online Package Manager
Post by: balazsszekely on February 05, 2018, 05:51:13 pm
@lainz
I updated rx, but one of the components inside rx crashes the "Component Window"(Ctrl + Alt + P) at lease at my side. Can you please test it?

PS: Tested on Win7(64 bit)/Lazarus Trunk/FPC 3.0.4.
Title: Re: Online Package Manager
Post by: lainz on February 06, 2018, 12:23:02 am
@lainz
I updated rx, but one of the components inside rx crashes the "Component Window"(Ctrl + Alt + P) at lease at my side. Can you please test it?

PS: Tested on Win7(64 bit)/Lazarus Trunk/FPC 3.0.4.

Hi, thanks for adding it!

And yes, there is a crash with Ctrl + Alt + P.

Windows 10 64 bit, trunk-trunk.
Title: Re: Online Package Manager
Post by: giuian on February 06, 2018, 07:01:06 am
Excuse me, i am unable to install rx package from OPM.
I got 'rxlookup.pas(1533,10) Error: Identifier not found "MouseInClient"'
Lazarus 1.8 not trunk fresh install.

Edit: i have changed MouseInClient with MouseEntered, now compile, but does it work the same?
MouseInclient it is not implemented in in 1.8 stable??
Sorry for my english...
Title: Re: Online Package Manager
Post by: balazsszekely on February 06, 2018, 07:38:33 am
Hi giuian,

Quote
MouseInclient it is not implemented in in 1.8 stable??
MouseInClient is not available in 1.8 stable.

Quote
but does it work the same?
Yes. It should work the same.

Please report the bug to the package maintainer: http://forum.lazarus.freepascal.org/index.php/topic,39919.0.html
Title: Re: Online Package Manager
Post by: balazsszekely on February 06, 2018, 08:33:43 am
@lainz
Quote
And yes, there is a crash with Ctrl + Alt + P.
The exception is caused by RX Controls-->TRxViewsPanel. The error message is: "Class FPImageException: Invalid vertical pixel index 23".
Title: Re: Online Package Manager
Post by: giuian on February 06, 2018, 01:04:57 pm
Please report the bug to the package maintainer: http://forum.lazarus.freepascal.org/index.php/topic,39919.0.html

Ok grazie.
Title: Re: Online Package Manager
Post by: lainz on February 08, 2018, 12:52:22 pm
@GetMem, hi again  :)

There's a new Rx on SVN I need again, you can upload to OPM? Thanks.

http://forum.lazarus.freepascal.org/index.php/topic,39919.msg275739.html#msg275739
Title: Re: Online Package Manager
Post by: wp on February 08, 2018, 01:54:12 pm
Poor GetMem... Isn't this the job of the package maintainer?
Title: Re: Online Package Manager
Post by: lainz on February 08, 2018, 01:56:05 pm
Poor GetMem... Isn't this the job of the package maintainer?

The package maintainer is in that post, he didn't know about OPM...

But I agree.
Title: Re: Online Package Manager
Post by: balazsszekely on February 08, 2018, 02:39:19 pm
I would update, but the same MouseInClient related error was introduced again, see @giuian post above. When you use MouseInClient, you need:
Quote
{$IF lcl_fullversion >= 1090000} 
  if MouseInClient then
{$ELSE}
  if MouseEntered then
Otherwise rx cannot be compiled in stable 1.8. You can download the latest version with a SVN client from here: https://svn.code.sf.net/p/lazarus-ccr/svn/components/rx/trunk
Title: Re: Online Package Manager
Post by: lainz on February 08, 2018, 02:43:24 pm
I would update, but the same MouseInClient related error was introduced again, see @giuian post above. When you use MouseInClient, you need:
Quote
{$IF lcl_fullversion >= 1090000} 
  if MouseInClient then
{$ELSE}
  if MouseEntered then
Otherwise rx cannot be compiled in stable 1.8. You can download the latest version with a SVN client from here: https://svn.code.sf.net/p/lazarus-ccr/svn/components/rx/trunk

Thanks, I will download from there, I also commented this with a copy of your message on the Rx post, so maybe can be fixed.
Title: Re: Online Package Manager
Post by: JuhaManninen on February 08, 2018, 04:35:02 pm
Poor GetMem... Isn't this the job of the package maintainer?
Indeed, maybe the package maintainer should be informed about OPM and explained how to publish packages there.
The idea is that when a maintainer releases a well tested version, he can then publish it.
The idea is not that GetMem copies random revisions directly from SVN when somebody asks for it.
The latest development versions are still available in revision control systems, nothing has changed with that.
Title: Re: Online Package Manager
Post by: piGrimm on February 08, 2018, 04:40:44 pm
package uniqueinstance is broken at downloading by onlinepackagemanager
I receive 404 error
am I the only one?
Finally I got this fixed because I have both svn and git clients, so I got uniqueinstance 1.1 from svn, but not from onlinepackagemanager, after a week expecting this would be fixed. apparently not, so I signal it here
Title: Re: Online Package Manager
Post by: balazsszekely on February 08, 2018, 05:09:35 pm
@Juha
Quote
Indeed, maybe the package maintainer should be informed about OPM and explained how to publish packages there.
He was informed, please see here: http://forum.lazarus.freepascal.org/index.php/topic,39919.msg275633.html#msg275633
Quote
The idea is that when a maintainer releases a well tested version, he can then publish it.
The idea is not that GetMem copies random revisions directly from SVN when somebody asks for it.
True but there are a few exception from the rule, when the release cycle is slow: synaps, indy, etc.
Quote
The latest development versions are still available in revision control systems, nothing has changed with that.
I think I will add SVN support soon. It will be the user choice to install the trunk version or not. The package.json already has a SVN entry, which is not used yet.

@piGrimm
Quote
Finally I got this fixed because I have both svn and git clients, so I got uniqueinstance 1.1 from svn, but not from onlinepackagemanager, after a week expecting this would be fixed. apparently not, so I signal it here
Always signal any issue you find, otherwise it won't be fixed. I'm the only one who maintains the repository and I cannot constantly test 130+ packages. Unique instance is fixed now. Thanks for the feedback.
Title: Re: Online Package Manager
Post by: piGrimm on February 08, 2018, 05:40:18 pm
@Getmem you're welcome! thanks to you
yep, alone getmem can become overflawn/overflood (just kidding)  :D
Title: Re: Online Package Manager
Post by: lainz on February 08, 2018, 10:37:36 pm
Hi @GetMem, sorry If I bother you again.

I've updated BGRAControls to fix the compilation problems in tunk, in Linux due to changes to ImageList. The best is to become BGRAImageList equal to ImageList for now until it get's ready and I can see how to make a new one.

I don't know if I can upload the new release or if actually is as always you the only with privileges to do it. Because in this case, an update will not work since it's required to be installed first, and that is just the thing i'm fixing.

Thanks.
Title: Re: Online Package Manager
Post by: wp on February 09, 2018, 10:31:06 am
I think I will add SVN support soon. It will be the user choice to install the trunk version or not. The package.json already has a SVN entry, which is not used yet.
Does this mean that OPM will create the zip file by itself from the svn files? How does it know that the svn sources have been changed? Does the package maintainer have to update the update.json every time he commits changes to svn? This would not be good because this will not happen, and the users will get an outdated svn version. Or will OPM regularly scan all the available svn repositories for the current revision number and compare with an internal list?
Title: Re: Online Package Manager
Post by: balazsszekely on February 09, 2018, 10:57:18 am
Quote
Does this mean that OPM will create the zip file by itself from the svn files? How does it know that the svn sources have been changed? Does the package maintainer have to update the update.json every time he commits changes to svn?
When the user decide to switch to the trunk version of a particular package, OPM will act like as a SVN/GIT client and will do a checkout/update or clone/pull respectively.  The package maintainers don't have to do anything other then provide a link(once) to package trunk. The user will have the possibility to switch back to a stable version if needed by using the "Install"/"Update" buttons. At least this is the idea, I did not implemented anything so far.
Title: Re: Online Package Manager
Post by: marcov on February 09, 2018, 11:24:36 am
I have some code to get logmessages for revisions using  "svn log -v", given a range of revisions.

This include mutated files, which one could then transform into mutated toplevel directories (=packages)?

(I'm thinking about e.g. a lazarus-ccr structure here, if opm is different, nevermind)
Title: Re: Online Package Manager
Post by: sam707 on February 09, 2018, 11:39:57 am
just an idea...
would it be difficult to turn OPM (OnlinePackageManager) into a kind of multisource thingey (likewise simplistic dedicated bitorrent)?

I think there would be many advantages
- no storage server (or centralized cloud) needed = autonomy
- keys to check validity of zip archives only on short master tracker
- list of authored people (packages mainteners) on master tracker, other are anonymous clients with no modify rights
- each anonymous client "can" configure its OPM to conribute with a minimal bandwidth to lend

disavantage
- less appreciated packages are going to get more time at download, but the stars notation system is also going to be automatic after few statistic months
Title: Re: Online Package Manager
Post by: balazsszekely on February 09, 2018, 12:12:56 pm
@marcov
Thanks for the suggestion. The OPM structure is different, now it relies on zip files, the packages are zipped(main repository) to minimize traffic load on download. Since a lot of users prefer the trunk version of a particular package, I was thinking to add the possibility to download the whole trunk directory as any svn/git client would do, from the maintainers webpage.

@sam707
Quote
just an idea...
would it be difficult to turn OPM (OnlinePackageManager) into a kind of multisource thingey (likewise simplistic dedicated bitorrent)?
The idea is good, but I'm afraid OPM wasn't designed for that kind of functionality. I would have to rewrite a large part of OPM to support a bittorrent like feature. Unfortunately I don't have the time or the energy to do that.
Title: Re: Online Package Manager
Post by: lainz on February 09, 2018, 12:23:56 pm
+1 to SVN idea, really good to install from repository without having to find them.
Title: Re: Online Package Manager
Post by: Josh on February 09, 2018, 12:33:28 pm
@getmem
Just an idea, that would make it far more useful to me , would be if I set the download folder to be my central component folder, then when components are downloaded they are stored in a folder that also contains there version number, ie BGRABITMAP_8_5_2 etc, that way when I update a component in one of my lazarus installation, it will not effect the other installations; until I am ready to upgrade those as well.  As I have some old lazarus installations that are still in use but not all the updated component/libraries work with.
Title: Re: Online Package Manager
Post by: balazsszekely on February 10, 2018, 07:02:25 am
@josh
Quote
Just an idea, that would make it far more useful to me , would be if I set the download folder to be my central component folder, then when components are downloaded they are stored in a folder that also contains there version number, ie BGRABITMAP_8_5_2 etc, that way when I update a component in one of my lazarus installation, it will not effect the other installations; until I am ready to upgrade those as well.  As I have some old lazarus installations that are still in use but not all the updated component/libraries work with.
The problem is each package can contain multiple lpk files with different versions. Which one to choose as folder name(see attached image)?
Title: Re: Online Package Manager
Post by: dsiders on February 10, 2018, 07:43:12 am
I finally got around to installing and using OPM. Seems like a very nice start. Now for the obligatory stupid question.

I see that OPM has a new version, but I cannot update from inside OPM. I'm assuming that's because it does not have an "Update JSON" link. So the question is... how does one update OPM if it cannot be done using OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on February 10, 2018, 08:27:06 am
@dsiders
Quote
I finally got around to installing and using OPM. Seems like a very nice start.
Thank you.

Quote
Now for the obligatory stupid question.
There are no stupid questions.

Quote
I see that OPM has a new version, but I cannot update from inside OPM. I'm assuming that's because it does not have an "Update JSON" link. So the question is... how does one update OPM if it cannot be done using OPM?
If you're using Lazarus 1.8, you can update to OPM 1.0.1.2 by pressing the "Install" button. The difference between Install and Update is described here: http://wiki.freepascal.org/Online_Package_Manager#Difference_between_download.2Finstall.2Fupdate
There is an even newer version of OPM in Lazarus trunk but you can not install it into a stable version because breaks code(this is the reason you don't see an update json for OPM). Lately there was a lot of changes to make OPM more compatible with the internal package system(see attached images). So basically you have two choices:
1. Stay with Lazarus 1.8/OPM 1.0.1.2
2. Use Lazarus trunk

Title: Re: Online Package Manager
Post by: Josh on February 10, 2018, 10:10:51 am
@getmem
The whole component/module has a version number, ie bgrabitmap 9.6.1.

If the new version has issues and creates problems, it is easy to revert back to a previous version, at the moment I do this manually using install pkg, but if opm created such a file structure, then OPM could have this archive feature added in, with an option to enable it or disable it.
Another use for the archive idea, is if a new version introduces a bug, you can then go back and find which version introduced the bug, to aid in tracking it down.

possible folder structure
bgrabitmap/V8.5.2/.......
bgrabitmap/V9.6.0/........
bgrabitmap/V9.6.1/........

Thats the idea, whether you or others would find such a feature usefull I do not know. I have not checked out the source for OPM to see how easy such a feature would be to add in.
Title: Re: Online Package Manager
Post by: balazsszekely on February 10, 2018, 12:31:31 pm
@Josh
Your request seems logical and reasonable, however it will introduce new issues that would be extremely difficult to solve. As you probably know OPM automatically resolve dependencies(as far as depth 10). For example if you wish to install component Rx, which depends on Zeos and FpSpreadsheet, OPM will automatically install both packages before Rx to prevent missing dependencies error. Now if we add more then one version of a particular package, OPM would have a hard time to decide which version should install(when resolving dependencies), because the .lpk name stays the same in each version. This is the reason why each meta and lazarus package inside the main repository must be unique. For example take a look at VirtualTreeView, you will find two version 4.8.7 and 5.3.3 however the lpk from the former one is renamed to virtualtreeview_package4 to prevent confusion.
Even the internal packager can not handle more then one version of a package, I mean you cannot install different versions of same package at the same time.
Title: Re: Online Package Manager
Post by: lainz on February 10, 2018, 01:09:13 pm
Is a good explanation. This is not intended to be like NPM (Node Package Manager).
The problem is not OPM, but how Lazarus packages works from the start.

If SVN/Git is added, please add the option to stick to some revision, so you're sure wich version you're using at a repository level. Just search the version commit, or even better list each version in the package to choose one, and problem solved.
Title: Re: Online Package Manager
Post by: Josh on February 10, 2018, 02:22:29 pm
@getmem
If its not easily doable, no problem I will keep using my existing system.
It was just an idea, that may help people that have multiple version installations using the same local repository to avoid an update of one lazarus installation effecting the other installation.


Title: Re: Online Package Manager
Post by: lainz on February 10, 2018, 03:37:57 pm
Is a good explanation. This is not intended to be like NPM (Node Package Manager).
The problem is not OPM, but how Lazarus packages works from the start.

If SVN/Git is added, please add the option to stick to some revision, so you're sure wich version you're using at a repository level. Just search the version commit, or even better list each version in the package to choose one, and problem solved.

I quote myself so this message don't get lost, I think if that feature is developed will help you the actual way you manage packages.
Title: Re: Online Package Manager
Post by: dsiders on February 11, 2018, 01:30:25 am
Quote
Now for the obligatory stupid question.
There are no stupid questions.

Give me some time.... you may change your mind. <g>


Quote
I see that OPM has a new version, but I cannot update from inside OPM. I'm assuming that's because it does not have an "Update JSON" link. So the question is... how does one update OPM if it cannot be done using OPM?

If you're using Lazarus 1.8, you can update to OPM 1.0.1.2 by pressing the "Install" button. The difference between Install and Update is described here: http://wiki.freepascal.org/Online_Package_Manager#Difference_between_download.2Finstall.2Fupdate
There is an even newer version of OPM in Lazarus trunk but you can not install it into a stable version because breaks code(this is the reason you don't see an update json for OPM). Lately there was a lot of changes to make OPM more compatible with the internal package system(see attached images). So basically you have two choices:
1. Stay with Lazarus 1.8/OPM 1.0.1.2
2. Use Lazarus trunk

Thank you. Will try it out shortly.
Title: Re: Online Package Manager
Post by: JuhaManninen on February 11, 2018, 08:46:41 am
If the new version has issues and creates problems, it is easy to revert back to a previous version, at the moment I do this manually using install pkg, but if opm created such a file structure, then OPM could have this archive feature added in, with an option to enable it or disable it.
Another use for the archive idea, is if a new version introduces a bug, you can then go back and find which version introduced the bug, to aid in tracking it down.

possible folder structure
bgrabitmap/V8.5.2/.......
bgrabitmap/V9.6.0/........
bgrabitmap/V9.6.1/........
Bad idea! You essentially try to turn OPM into a revision control system and bisect bugs with it.
No, OPM is a delivery system for tested released packages. For bug haunting you must use the actual revision control system like you did before OPM existed.

Extending OPM to get latest sources directly from revision control may be a swamp. The benefit is that a user does not need to search for the repository's URL explicitly, good. But what if the latest revision has a bug? Where does he report it? Will OPM also have a link for the project's bug tracker and warnings that OPM is not its main development tool?
There is a danger that people get a wrong idea and report bugs in Lazarus bug tracker instead of the correct project.
Title: Re: Online Package Manager
Post by: balazsszekely on February 11, 2018, 09:54:16 am
@Juha
Quote
Extending OPM to get latest sources directly from revision control may be a swamp.
Although I have working code for SVN, I'm still reluctant to commit. I'm also under the impression that will cause more trouble then good.  %)
Title: Re: Online Package Manager
Post by: minesadorada on February 11, 2018, 10:58:07 am
I'm with Juha on this.
OPM has a good system for delivering latest_stable components, and SVN revisions/branches etc. would be unneeded bloat IMO.
Title: Re: Online Package Manager
Post by: lainz on February 11, 2018, 02:51:30 pm
Hi, there is BGRABitmap 9.6.1, @circular did not add the update.json, yet. BTW is optional and there is no problem on don't having it, is the normal and original OPM way to use it.

If the SVN thing is a bad idea for @GetMem then don't add it, is your system and you decide what is good or not.

This don't need to be like NPM where you can grab any version, and use any version on each single project. Things work different here, I think. First that packages are per Lazarus installation usually. If you need per project there already are the Project Options.

I think having packages installed by OPM in a global folder is not a good idea. And then if you need an exact revision, better shipt it with your project until it get's lost.

Yes, I get convinced  :)
Title: Re: Online Package Manager
Post by: balazsszekely on February 11, 2018, 03:18:49 pm
Quote
Hi, there is BGRABitmap 9.6.1, @circular did not add the update.json, yet. BTW is optional and there is no problem on don't having it, is the normal and original OPM way to use it.
Done.

Quote
If the SVN thing is a bad idea for @GetMem then don't add it, is your system and you decide what is good or not.
The idea is good but most likely will introduce new issues which is bad. 
Title: Re: Online Package Manager
Post by: wp on February 16, 2018, 10:50:14 pm
GetMem, I updated spktoolbar today to v0.1.6 (improved LCL-Scaling, support of new Hi-DPI image list, avoid flicker after recent changes in LCL), but OPM tells me that there's still v0.1.5 in the repository. I probably did something wrong - again...
Title: Re: Online Package Manager
Post by: balazsszekely on February 17, 2018, 08:22:32 am
Hi wp,

It works fine for me, nevertheless I also updated the package in the central repository, so the default version now is v0.1.6 .
Title: Re: Online Package Manager
Post by: wp on February 17, 2018, 10:49:40 am
I think I asked this already, and you probably explained it a thousand times...

There seem to be always two download locations:
- the one which I specify in the updatejson - this is the version in column "Update" - and which is updated by the local client in an interval specified in the "Options",
- the central repository which is updated from time to time by yourself or maybe by some process running on the server.
Is this correct?

Without understanding this, the columns in the OPM window ("Repository", "Update") are confusing. Does the user have to know these internals? Can't they be merged to one?

Another confusing information is in the column "Status/Data": spktoolbar in trunk has the version number 0.1.7 - this is what is installed on my system, but the column says "Up to date". I think this is wrong, it should be "Ahead of OPM" or "Development version".

Title: Re: Online Package Manager
Post by: balazsszekely on February 17, 2018, 11:57:08 am
Quote
There seem to be always two download locations:
- the one which I specify in the updatejson - this is the version in column "Update" - and which is updated by the local client in an interval specified in the "Options",
- the central repository which is updated from time to time by yourself or maybe by some process running on the server.
Is this correct?
Yes.

Quote
Without understanding this, the columns in the OPM window ("Repository", "Update") are confusing.
I agree it is confusing, but I think I did explained relatively well here(or at least I tried  :) ): http://wiki.freepascal.org/Online_Package_Manager#Difference_between_download.2Finstall.2Fupdate

Quote
Does the user have to know these internals? Can't they be merged to one?
This is a good question. Initially the separation(install/update) was introduced for two reasons:
1. To offload the bulk of the work from the central repository to the package maintainer(s), this way making the whole system sustainable on the long run.
2. To prevent infection, which is especially important under windows. The user must know that now it will install something from the maintainer webpage, which in theory can contain malicious stuff
The ideal solution is to create login system for package maintainers, which would allow to modify the packages inside the main repository directly. Since the lazarus webpage was compromised in the past, Marc only agrees if somebody creates a cgi backend in pascal or php. Unfortunately I don't have the time or the energy to implement such a complex system, at least not now. 

Quote
Another confusing information is in the column "Status/Data": spktoolbar in trunk has the version number 0.1.7 - this is what is installed on my system, but the column says "Up to date". I think this is wrong, it should be "Ahead of OPM" or "Development version
By up to date I meant: you cannot get a newer version with OPM, but I can change it to "Ahead of OPM", it sounds good.
Title: Re: Online Package Manager
Post by: wp on February 17, 2018, 01:46:56 pm
Quote
Without understanding this, the columns in the OPM window ("Repository", "Update") are confusing.
I agree it is confusing, but I think I did explained relatively well here(or at least I tried  :) ): http://wiki.freepascal.org/Online_Package_Manager#Difference_between_download.2Finstall.2Fupdate
Yes, I remember now.

But having forgotten about this page, I see another misunderstanding on my side: I understood "Update" to be a command to update an existing package installation as it is commonly used, but you mean "install, or update, from package maintainer source", in contrast to "Install" which is from Repository source. What about merging these two buttons to a single "Install" which opens a dropdown menu with the entries "from repository" and "from external source". Then, maybe, the column "Update" could be renamed to "External".

Quote
Does the user have to know these internals? Can't they be merged to one?
This is a good question. Initially the separation(install/update) was introduced for two reasons:
1. To offload the bulk of the work from the central repository to the package maintainer(s), this way making the whole system sustainable on the long run.
2. To prevent infection, which is especially important under windows. The user must know that now it will install something from the maintainer webpage, which in theory can contain malicious stuff
The ideal solution is to create login system for package maintainers, which would allow to modify the packages inside the main repository directly. Since the lazarus webpage was compromised in the past, Marc only agrees if somebody creates a cgi backend in pascal or php. Unfortunately I don't have the time or the energy to implement such a complex system, at least not now. 
You never can be absolutely safe from malicious software. If there is a black sheep among us developers the login system for package maintainers won't be an improvement. How will you be sure that the package author you gave permission to modify the repository is not a bad guy? I would forget about this idea.

Quote
Another confusing information is in the column "Status/Data": spktoolbar in trunk has the version number 0.1.7 - this is what is installed on my system, but the column says "Up to date". I think this is wrong, it should be "Ahead of OPM" or "Development version
By up to date I meant: you cannot get a newer version with OPM, but I can change it to "Ahead of OPM", it sounds good.
No, the newer version is not obtained with OPM, it is a locally installed package which, by incidence, is also distributed by OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on February 17, 2018, 03:09:46 pm
Quote
What about merging these two buttons to a single "Install" which opens a dropdown menu with the entries "from repository" and "from external source". Then, maybe, the column "Update" could be renamed to "External".
This is an excellent idea. I will implement it next week.
Quote
You never can be absolutely safe from malicious software. If there is a black sheep among us developers the login system for package maintainers won't be an improvement. How will you be sure that the package author you gave permission to modify the repository is not a bad guy? I would forget about this idea.
True. There is no system that's 100% safe, but with this method the "Update" button will completely disappear and the central repository would be maintained almost entirely by package maintainers.
Title: Re: Online Package Manager
Post by: minesadorada on February 18, 2018, 08:24:00 am
There is no system that's 100% safe, but with this method the "Update" button will completely disappear and the central repository would be maintained almost entirely by package maintainers.
The problem with a wholly user-maintained system is ensuring quality control.  OPM needs a "gatekeeper" to exclude incompatible, out-of-date or uncompileable packages from entering the system.
Title: Re: Online Package Manager
Post by: wp on February 18, 2018, 12:01:34 pm
Yes, but you cannot expect that GetMem does this job; it is a full-time job which cannot be handled by anybody voluntarily. I am maintaining a hand-full of packages, and it already blows my mind.  But OPM contains 224!
Title: Re: Online Package Manager
Post by: minesadorada on February 18, 2018, 01:38:25 pm
Yes, but you cannot expect that GetMem does this job; it is a full-time job which cannot be handled by anybody voluntarily. I am maintaining a hand-full of packages, and it already blows my mind.  But OPM contains 224!
Quite.  But this was discussed at the start and GetMem volunteered.  The only alternative I can see is to expand and implement the voting system to include categories like compatibility, stability, maintenance etc.  It's the Wiki principle.
In that way, users can avoid unsuitable components possibly submitted without initial vetting/evaluation.

my 2 €
Title: Re: Online Package Manager
Post by: molly on February 18, 2018, 02:14:46 pm
Yes, but you cannot expect that GetMem does this job; it is a full-time job which cannot be handled by anybody voluntarily. I am maintaining a hand-full of packages, and it already blows my mind.  But OPM contains 224!
Quite.  But this was discussed at the start and GetMem volunteered.
I might perhaps be wrong but afaik all that GetMem volunteered to do is to implement/maintain OPM (not the packages themselves), and add some initial packages. Not volunteering to maintain those packages and/or keep them all up to date with every change in LCL (except for his own packages, i presume  :)).

If that would to be expected of GetMem then i can only give him 1 advise and that is to ditch every package that isn't maintained anymore the moment it breaks due to LCL changes.

imho he's already going out of a limb by updating packages from trunk while i myself was only expecting OPM to contain (by 3th party developers) maintained and stable released packages.

In that regards the addition of adding support for trunk/svn compilation within OPM is a) already a sign at the wall and b) a good choice for those that are too lazy to compile sources from trunk themselves because they can't wait for the next stable release. This way there is at least some pressure-release.
Title: Re: Online Package Manager
Post by: JuhaManninen on February 18, 2018, 03:09:36 pm
In that way, users can avoid unsuitable components possibly submitted without initial vetting/evaluation.
Somehow you have misunderstood the issue again. Every component is initially submitted only after evaluation and scrutiny by the OPM admin, currently GetMem. The update link can be used only after that. It means the package maintainer can be trusted at that point.
I also didn't like this hybrid repository / update system at first. It mixed 2 competing design goals and the GUI was confusing as noted earlier. However it may be a good compromise between strict administration and flexibility.
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2018, 08:48:31 am
I implemented wp's idea about merging the "Install" and "Update" buttons (r. 57328), now the package installation is less confusing. Thanks again wp. One limitation still exists though, namely the packages must be installed from the central repository first. Technically OPM can install directly from external source, but I prefer to keep this separation mainly because:
1. When installed from the central repository every dependency is resolved correctly. I test newly added packages both on windows and linux, with the latest stable version of lazarus. The packages are usually stable releases, except a few with slow release cycle like: synapse, indy, etc...
2. The user will be able to distinguish between a safe source(repository) and a less safe external link. Maybe I'm a little bit paranoid, but I really don't want to have any legal issues(although highly unlikely), with packages installed from somewhere else.

PS: I will not implement package install from SVN or GIT(at least not in the near future), because in my opinion it will cause more issues and confusion. Thanks everyone for the suggestions.
Title: Re: Online Package Manager
Post by: wp on February 19, 2018, 11:32:24 am
One limitation still exists though, namely the packages must be installed from the central repository first. Technically OPM can install directly from external source, but I prefer to keep this separation mainly because:
1. When installed from the central repository every dependency is resolved correctly. I test newly added packages both on windows and linux, with the latest stable version of lazarus. The packages are usually stable releases, except a few with slow release cycle like: synapse, indy, etc...
2. The user will be able to distinguish between a safe source(repository) and a less safe external link. Maybe I'm a little bit paranoid, but I really don't want to have any legal issues(although highly unlikely), with packages installed from somewhere else.
No problem with this basically. I can't find an example to test how this works in practice. But ideally there should be some kind of feedback to the user that he must install from Repository first. Is "Install from externeal" disabled if the package has not yet been installed from Repo? It probably should be disabled also if there is no external source (no update-json file). At the moment, it seems that both menu items are enabled always.
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2018, 01:16:09 pm
Quote
But ideally there should be some kind of feedback to the user that he must install from Repository first.
The user has no other choice. The old "Update" now "External" column is empty(-) until the package is installed from the repository,  even if a valid external link is available. 

Quote
Is "Install from externeal" disabled if the package has not yet been installed from Repo? It probably should be disabled also if there is no external source (no update-json file). At the moment, it seems that both menu items are enabled always.
The user can check 2, 3 even 10 packages at the same time. Let's say 3 is installed and has links to external source, 7 does not , how should OPM proceed in this particular case? Disable or not the "From external source" menu item. I choose to always keep the menu item enabled and display a message when needed, like this: "Package X,  package Y is not available from an external source and will be skipped". Do you wish to continue?"
Title: Re: Online Package Manager
Post by: wp on February 19, 2018, 01:42:28 pm
Perfect
Title: Re: Online Package Manager
Post by: M.A.R.C. on February 26, 2018, 10:17:37 am
Hi GetMem,

In the laz_synapse40_1 package, the unit ssl_openssl.pas is missing from the file list. It is necessary for compile internettools package in Linux.
Title: Re: Online Package Manager
Post by: balazsszekely on February 26, 2018, 11:07:17 am
Hi M.A.R.C,

Please try it again.
Title: Re: Online Package Manager
Post by: lainz on February 28, 2018, 04:23:33 pm
Hi @GetMem,

You can add xmailer?
https://github.com/MFernstrom/xmailer

This is a related post
http://forum.lazarus.freepascal.org/index.php?topic=32795.0
Title: Re: Online Package Manager
Post by: balazsszekely on February 28, 2018, 07:16:03 pm
Hi lainz,

I added xmailer 1.0. To prevent duplicates, I removed the internal sysnapse(xmailer) and linked the package to the synapse from OPM. It works fine, but just to be sure you can also run a few tests.
Title: Re: Online Package Manager
Post by: lainz on February 28, 2018, 07:22:49 pm
Thanks. I will test.

Edit: it works with Outlook / Hotmail, but Gmail sent me a warning that a non secure application want to use my account.
Title: Re: Online Package Manager
Post by: balazsszekely on February 28, 2018, 10:17:40 pm
Quote
Edit: it works with Outlook / Hotmail, but Gmail sent me a warning that a non secure application want to use my account.
It has nothing to do with the component itself, it's gmail policy I'm affraid. Please see here: https://support.google.com/accounts/answer/6010255?hl=en
Title: Re: Online Package Manager
Post by: lainz on March 01, 2018, 02:25:28 pm
Ok, It's Gmail.

I've tested it on Linux and does not work (with Outlook).

Code: Pascal  [Select][+][-]
  1. SSL error: TSendMail

I have SSL installed on Ubuntu. I will keep trying.
Title: Re: Online Package Manager
Post by: balazsszekely on March 01, 2018, 02:47:39 pm
Quote
I have SSL installed on Ubuntu. I will keep trying.
I don't think it's OPM related. Perhaps you should ask the maintainer?
Title: Re: Online Package Manager
Post by: lainz on March 01, 2018, 02:56:57 pm
Quote
I have SSL installed on Ubuntu. I will keep trying.
I don't think it's OPM related. Perhaps you should ask the maintainer?

Sure, I will do.

Edit: just to inform if someone is interested, it works fine on mac.
Title: Re: Online Package Manager
Post by: lainz on March 02, 2018, 12:36:06 pm
Hi GetMem, there is a new version of https://github.com/wadman/wthread

1.2
https://github.com/wadman/wthread/commit/4a15d4ed0afdf6881de3c87bfd447d49684452b0

Really nice component. I discovered it in OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on March 02, 2018, 02:19:14 pm
Hi lainz,

Quote
There is a new version of https://github.com/wadman/wthread

1.2
https://github.com/wadman/wthread/commit/4a15d4ed0afdf6881de3c87bfd447d49684452b0

Really nice component. I discovered it in OPM.
Updated to 1.0.0.2  :)
Title: Re: Online Package Manager
Post by: gorkamorka on March 02, 2018, 11:09:04 pm
Dear Getmem,

 You have done a great thing with OPM..respect.

I want to inform you about a package conflict;

if is  sparta_docketformeditor( comes with standart Lazarus installation ) installed, trying to install Castle Game Engine from OPM failed and Lazarus build stops with error message ( attached screenshot).

And if is Castle Game Engine installed first then sparta_docketformeditor install failed.

This is just for information, I dont expect a fix. It is not importand to me

Best regards

(Tested with Lazarus 1.8 and 1.8.2, Windows 10 32 Bit )
Title: Re: Online Package Manager
Post by: balazsszekely on March 03, 2018, 08:33:10 am
Hi gorkamorka,

Quote
I want to inform you about a package conflict;
if is  sparta_docketformeditor( comes with standart Lazarus installation ) installed, trying to install Castle Game Engine from OPM failed and Lazarus build stops with error message ( attached screenshot).
And if is Castle Game Engine installed first then sparta_docketformeditor install failed.
Thanks for the feedback. I believe this error is not OPM related and should be fixed by the package authors. I mean if you install Castle Game Engine and Sparta without OPM, the same error would occur.  I only add packages to the central repository. Fixing bugs it's the maintainers job.
Title: Re: Online Package Manager
Post by: lainz on March 03, 2018, 02:03:14 pm
Hi gorkamorka,

Quote
I want to inform you about a package conflict;
if is  sparta_docketformeditor( comes with standart Lazarus installation ) installed, trying to install Castle Game Engine from OPM failed and Lazarus build stops with error message ( attached screenshot).
And if is Castle Game Engine installed first then sparta_docketformeditor install failed.
Thanks for the feedback. I believe this error is not OPM related and should be fixed by the package authors. I mean if you install Castle Game Engine and Sparta without OPM, the same error would occur.  I only add packages to the central repository. Fixing bugs it's the maintainers job.

I also commented here library problems :(

As predicted by some users here.  :o
Title: Re: Online Package Manager
Post by: wp on March 08, 2018, 10:19:59 am
@GetMem: Here's a new package for OPM: extrasyn which evolved from bugreport https://bugs.freepascal.org/view.php?id=18248 and contains more than 35 additional highlighters for Synedit, e.g. ruby, haskel, eiffel, fortran, modula 3, CA-Clipper, prolog, cobol, gnuplot, etc.

See also https://forum.lazarus.freepascal.org/index.php/topic,40329.0.html.

Download link: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/extrasyn-v100.zip/download
Update jpson link: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/OPM/update_extrasyn.json/download

Hoping that everything is fine this time...
Title: Re: Online Package Manager
Post by: balazsszekely on March 08, 2018, 12:16:48 pm
Quote
@GetMem: Here's a new package for OPM: extrasyn which evolved from bugreport https://bugs.freepascal.org/view.php?id=18248 and contains more than 35 additional highlighters for Synedit, e.g. ruby, haskel, eiffel, fortran, modula 3, CA-Clipper, prolog, cobol, gnuplot, etc.

See also https://forum.lazarus.freepascal.org/index.php/topic,40329.0.html.

Download link: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/extrasyn-v100.zip/download
Update jpson link: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/OPM/update_extrasyn.json/download
Done. Thank you.

Quote
Hoping that everything is fine this time...
Everything went well.
Title: Re: Online Package Manager
Post by: NelsonN on March 09, 2018, 07:36:20 pm
I am using the Vampyre Imaging Library in an older program I am trying to get to compile with the latest Lazarus.

Here's the problem at runtime now.

When I add the Vampyre Imaging Library 0.26.4 to the project I don't get icons on components like buttons yet they operate just fine.

When I add the vampyreimaging from the Online Package Manager I see all the icons on the components, but the library function LoadImageFromStream doesn't do its function.


Code: Pascal  [Select][+][-]
  1. function TForm2.SizeThumbs(Var ImageThumbsArray: TBitbtn; Img_Copyrect: Integer;
  2.   ThumbH: Integer; ThumbW: Integer; Var ImgMS: TMemoryStream) : Integer;
  3. var
  4.   Img, Img2 : TImageData;
  5.   ImgH, ImgW : Integer;
  6.   i{, returnWidth} : Integer;
  7. begin
  8.   try
  9.     InitImage(Img);
  10.  
  11.     NewImage(ThumbW, ThumbH, ifR8G8B8, Img2);
  12.  
  13.     ImgW := 0;
  14.  
  15.     ImgMS.Position := 0;
  16.  
  17.     LoadImageFromStream(ImgMS, Img);  // DOES NOT WORK with vampyreimaging from the Online Package Manager
  18.     ImgMS.Position := 0;
  19.     ImgMs.Size := 0;
Title: Re: Online Package Manager
Post by: wp on March 09, 2018, 07:54:31 pm
I fear this is another mess introduced by the CodeTyphon packages. In my Delphi days I had worked with Vampyre, they were standalon and I and never had needed any other third-party components for it. So, I was surprised that OPM finds a dependence on laz_OpenGL and Graphics32 and installs these packages as well. After installing Vampyre via OPM I removed these two packages from the requirements to find out where they actually are needed - but surprise: they are not needed at all!

@NelsonN: Please remove the packages laz_OpenGl and Graphics32 from the requirements list of the Vampyre package and recompile. There's not need to install anything, because Vampyre is a runtime package. If you don't see an improvment, you may also have to uninstall laz_OpenGl and Graphics32.

If this does not solve your issue you should post a compilable demo project showing your issue (only *.pas, *.lfm, *.lpr, *.lpr files, all packed into a shared zip, upload under "Attachments and other options" below the forum's text editor).
Title: Re: Online Package Manager
Post by: balazsszekely on March 09, 2018, 08:07:02 pm
@wp
Who is the original author? Did somebody port Vampyre package to Lazarus(other then CT)? I can update it in OPM, but I have no knowledge about the comoponent, I never used myself.
Title: Re: Online Package Manager
Post by: NelsonN on March 09, 2018, 09:57:04 pm
@NelsonN: Please remove the packages laz_OpenGl and Graphics32 from the requirements list of the Vampyre package and recompile. There's not need to install anything, because Vampyre is a runtime package. If you don't see an improvment, you may also have to uninstall laz_OpenGl and Graphics32.

If this does not solve your issue you should post a compilable demo project showing your issue (only *.pas, *.lfm, *.lpr, *.lpr files, all packed into a shared zip, upload under "Attachments and other options" below the forum's text editor).


Your suggestion did not fix the issue. As per your instructions, here's a compilable demo project. I included a TDBNavigator just to show how the icons disappear with the non-OPM Vampyre Imaging Library.
Title: Re: Online Package Manager
Post by: wp on March 09, 2018, 10:33:58 pm
@wp
Who is the original author? Did somebody port Vampyre package to Lazarus(other then CT)? I can update it in OPM, but I have no knowledge about the comoponent, I never used myself.
The author's repository is http://hg.code.sf.net/p/imaginglib/code/file/17db2c7f6ee0; the homepage is http://imaginglib.sourceforge.net/.

There is already a Lazarus package in the mercurial repository, I'll test it a bit more and prepare it for OPM so that we can get rid of the CT version.

@NelsonN: I do confirm that the jpeg fails to load in your sample, but the author's LCLImager demo is running perfectly. I cannot confirm the missing icons issue, but I'll have a look.

[EDIT] Now that I got the original package running, the icons are missing, too.
Title: Re: Online Package Manager
Post by: NelsonN on March 10, 2018, 02:47:25 am
@NelsonN: I do confirm that the jpeg fails to load in your sample, but the author's LCLImager demo is running perfectly. I cannot confirm the missing icons issue, but I'll have a look.

[EDIT] Now that I got the original package running, the icons are missing, too.

I hope you can figure it out because I am not that sophisticated of a programmer.
Title: Re: Online Package Manager
Post by: taazz on March 10, 2018, 07:05:59 am
try disabling registering the graphic classes with the lcl image system one by one until you find the problematic one.
Title: Re: Online Package Manager
Post by: NelsonN on March 10, 2018, 02:24:52 pm
I did some experimenting yesterday and I noticed that when I added unit ImagingComponents into the demo project I uploaded here yesterday the icons disappear.
Title: Re: Online Package Manager
Post by: NelsonN on March 10, 2018, 02:32:07 pm
I did some experimenting yesterday and I noticed that when I added unit ImagingComponents into the demo project I uploaded here yesterday the icons disappear.

Yes, I just unchecked use the ImagingComponents unit and recompiled the Vampyre Imaging Library component and now the icons are back in my program and the load function is working.
Title: Re: Online Package Manager
Post by: wp on March 10, 2018, 02:33:26 pm
Yes ImagingComponents is the culprit: In its "RegisterTypes" it has
Code: Pascal  [Select][+][-]
  1. {$IFNDEF DONT_LINK_PNG}
  2.   {$IFDEF COMPONENT_SET_LCL}
  3.     // Unregister Lazarus´ default PNG loader which crashes on some PNG files
  4.     TPicture.UnregisterGraphicClass(TPortableNetworkGraphic);
  5.   {$ENDIF}
  6.   RegisterFileFormat(TImagingPNG);
  7.   Classes.RegisterClass(TImagingPNG);
  8. {$ENDIF}
Before registering the Vampyre PNG reader, it unregisters the default PNG loader because of some problematic PNG files. The straightforward way to solve this issue is to define the directive DONT_LINK_PNG in file "ImagingOptions.inc" - this does not link in the Vampyre PNG reader and leaves the FPC reader alone.

I am not very happy with this solution because this leaves the bugs in the builtin reader in place. I think I'll contact the author to learn about the issues in the FPC reader.

Not "using" ImagingComponents" will certainly work in a few simple cases, but when you want to read one of the new file formats supported by Vampyre then you cannot avoid it.
Title: Re: Online Package Manager
Post by: NelsonN on March 10, 2018, 03:05:47 pm
I defined the directive DONT_LINK_PNG in file "ImagingOptions.inc" so far no issues and I have imported a bunch of PNGs with no issues.

Most of the images that are going to be imported into my database will be JPEGs so I will take my chances. The generated thumbnails stored in the database and used on TImage and other components are ones created with Vampyre so I am sure they will not present an issue.

Thanks a lot. I am hoping that you get a response with a possible fix.
Title: Re: Online Package Manager
Post by: wp on March 10, 2018, 05:24:54 pm
Here's a better, probably the "correct", solution: The problem is that, when reading images from resources, FPC calls the routine "IsStreamFormatSupported(Stream)" to check whether the provided stream can be read by its graphics classes. Every TGraphicClass either inherits or implements this function. VampyreImaging, coming from Delphi where - I suspect - this function might not be available at all, does not implement it; the basic inherited response is false. Therefore, FPC does not reckognize the Vampyre png class as being able to read this format.

All we have to do is to extend Vampyre's basic TGraphic class, TImagingGraphic, by this method to make it compatible with FPC's way of graphics format detection:

Code: Pascal  [Select][+][-]
  1. {$IFDEF FPC}
  2. class function TImagingGraphic.IsStreamFormatSupported(Stream: TStream): Boolean;
  3. begin
  4.   Result := DetermineStreamFormat(Stream) <> '';  // this is in unit Imaging.
  5. end;{$ENDIF}

Add this code to unit ImagingComponents. Don't forget the interface part:
Code: Pascal  [Select][+][-]
  1. type
  2.   TImagingGraphic = class(TBitmap)
  3.   ...
  4.   protected
  5.     {$IFDEF FPC}
  6.     class function IsStreamFormatSupported(Stream: TStream): boolean; override;
  7.     {$ENDIF}
  8.   ...
I am using an IFDEF here to avoid interference with the Delphi code in the units.
 
Undefine the directive DONT_LINK_PNG again. Compile your demo, and it should be fine.

Could you also test the Vampyre branch on my github (https://github.com/wp-xyz/LazVampyreImaging) before I prepare a package for OPM? It has some more improvements mainly in the package structure because the original version did not allow to install the format extensions which linked in a Direct3D unit. Now all the external parts are splitt off into separate packages:

- VampyreImagingPackage.lpk -- basic code, sufficient for most cases, nothing else needed
- VampyreImagingPackage_ext.lp -- extensions adding more graphics formats, nothing else needed
- VampyreImagingPackage_opengl -- addon for OpenGL support; nothing else needed (uses FPC's OpenGL units)
- VampyreImagingPackage_gr32 -- addon for Graphics32; Graphics32 library needed.

The Direct3D support units so far is not usable because I don't know where to get the system units from (maybe take them from CodeTyphon), and it won't be cross-platform anyway, so I am not very motivated here...

The other big change is that the demos correctly use the package(s) now, instead of stuffing the Vampyre units into the unit search path.
Title: Re: Online Package Manager
Post by: NelsonN on March 10, 2018, 07:35:33 pm
Fantastic! Everything is working fine with the non-OPM version I am using with your additions and your GitHub version.  ;D

The current OPM version just will not take, it still has the non-loading issue even with all your additions.

Again, thanks a lot!
Title: Re: Online Package Manager
Post by: balazsszekely on March 10, 2018, 11:27:24 pm
Quote
Fantastic! Everything is working fine with the non-OPM version I am using with your additions and your GitHub version.  ;D
The current OPM version just will not take, it still has the non-loading issue even with all your additions.
Now seriously NelsonN, are you aware how OPM it works? You're really ignorant.
Title: Re: Online Package Manager
Post by: wp on March 11, 2018, 12:08:55 am
No, GetMem, I think you did not understand what he means. He used the OPM version of the Vampyre Imaging Library (= CodeTyphon version) and noticed that it has a bug. The version, on the other hand, which I am currently porting from the original sources and which I'll prepare for OPM soon, does not have this bug any more.
Title: Re: Online Package Manager
Post by: NelsonN on March 11, 2018, 12:33:21 am
Quote
Fantastic! Everything is working fine with the non-OPM version I am using with your additions and your GitHub version.  ;D
The current OPM version just will not take, it still has the non-loading issue even with all your additions.
Now seriously NelsonN, are you aware how OPM it works? You're really ignorant.

I see you just embarrassed yourself. How does that feel?
Title: Re: Online Package Manager
Post by: balazsszekely on March 11, 2018, 09:07:09 am
@NelsonN
Quote
I see you just embarrassed yourself. How does that feel?
Actually I don't feel anything.

@All
Can somebody take over the package maintenance(at least temporarily)? I'm really busy with other things.
Title: Re: Online Package Manager
Post by: lainz on March 11, 2018, 02:11:53 pm
Hi @GetMem.

What are the requirements to make a system where is like npm that package authors can upload his own packages. In top of things already exists.

In PHP. So I can investigate and try to help in that.
Title: Re: Online Package Manager
Post by: balazsszekely on March 11, 2018, 06:09:35 pm
@lainz
Quote
What are the requirements to make a system where is like npm that package authors can upload his own packages. In top of things already exists.
It must be implemented in Pascal(CGI) or php, the database server should be PostgreSQL. Please note these are Mark's requirements not mine, Mark is the guy who administrates the Lazarus webpage, mailing list, etc... Currently the information about the packages are stored in a big json file(but you already know that :) ). If somebody implements a back end with database support + login system, we can get rid of the json and use tables to store package data. More over a voting system can be also implemented using database.

PS: I'm grateful for your help, I'm also aware that you're an experienced web developer/designer, but please note this kind of job usually requires two or more persons. I mean you can do it alone, but it will eat up your time very fast.
Title: Re: Online Package Manager
Post by: lainz on March 11, 2018, 07:37:32 pm
@lainz
Quote
What are the requirements to make a system where is like npm that package authors can upload his own packages. In top of things already exists.
It must be implemented in Pascal(CGI) or php, the database server should be PostgreSQL. Please note these are Mark's requirements not mine, Mark is the guy who administrates the Lazarus webpage, mailing list, etc... Currently the information about the packages are stored in a big json file(but you already know that :) ). If somebody implements a back end with database support + login system, we can get rid of the json and use tables to store package data. More over a voting system can be also implemented using database.

PS: I'm grateful for your help, I'm also aware that you're an experienced web developer/designer, but please note this kind of job usually requires two or more persons. I mean you can do it alone, but it will eat up your time very fast.

Ok, I will try to find already made stuff to make it easier.
I have only a free day in the week, you're right, doing it alone will take forever.

Hi all, our team is looking for an experienced Free Pascal Developer, who will work for one of the biggest email service providers.
We offer great salary, relocation package and 30% home office.
For more info: https://devpool.bg/job/148/freepascal-developer/ or write me back :)

Wow. Too much money =)
Please copy that to a separate thread, so people will find your offer and reply to it directly. Is not related with OPM.
Title: Re: Online Package Manager
Post by: GAN on March 14, 2018, 10:05:27 pm
Today I used for the first time OPM in Lazarus 1.8 Win10. I installed several packages without any problems.
Thank you for this magnificent tool.
Title: Re: Online Package Manager
Post by: balazsszekely on March 15, 2018, 01:43:03 pm
Thank you GAN. I'm glad you like it.
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 12:33:55 am
Thank you GAN. I'm glad you like it.

Hi!

Thanks, my forst look is, this a great, big app. For me miss the svn support...
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 06:18:52 am
Hi totya,

Thanks for the feedback. OPM mainly targets stable versions, there are a few exception though like Indy, Synapse, etc...where the release cycle is slow. We talk about SVN support in the past and we came to the conclusion that it will cause more trouble then good(see here: http://forum.lazarus.freepascal.org/index.php/topic,34297.msg276066.html#msg276066). More over package maintainers can push SVN version if they want to,  I also try to update the main repository as often as possible.
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 10:20:35 am
Hi totya,

Thanks for the feedback. OPM mainly targets stable versions, there are a few exception though like Indy, Synapse, etc...where the release cycle is slow. We talk about SVN support in the past and we came to the conclusion that it will cause more trouble then good(see here: http://forum.lazarus.freepascal.org/index.php/topic,34297.msg276066.html#msg276066). More over package maintainers can push SVN version if they want to,  I also try to update the main repository as often as possible.

Hi!

Thanks for the answer.

Snv version certainly mean = latest, not fully tested package. Sometimes a "official" package is unusable, becuase has many bugs. Sometimes a package changes very often. I think the developers are not stupid, they are know, what is this mean: svn version. Long time ago I use http://svnnotifier.tigris.org/ (http://svnnotifier.tigris.org/)  with http://tortoisesvn.tigris.org/ (http://tortoisesvn.tigris.org/), and works very well, I can see what is the changes line by line etc. But I like OPM interface/structure... :) I'd like to see new column (svn version), and possibility update for svn etc...

I found simple bug, see attached picture. A checked only five package...
Title: Re: Online Package Manager
Post by: Thaddy on March 29, 2018, 10:30:06 am
I'd like to see new column (svn version), and possibility update for svn etc...
That should be possible. I always use svnversion to obtain the revision number, then in my make script I add REVINC=force REVSTR=<svn revision >
This will create a compiler with the specific reversion number, like:
Code: Bash  [Select][+][-]
  1. pi@raspberrypi:~ $ fpc
  2. Free Pascal Compiler version 3.1.1-r38618 [2018/03/24] for arm
  3. Copyright (c) 1993-2018 by Florian Klaempfl and others

This is especially useful when you always use trunk.
So... feature request  8-) for OPM.
(A similar feature request to add this option to FPC compiler I entered in Mantis was refused, btw, but as you can see the support for it is already possible with the above steps)
I have scripts for both linux and windows, if required.

Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 10:40:46 am
@totya
Quote
I found simple bug, see attached picture. A checked only five package...
Thanks. I will fix it as soon as possible.

Quote
This is especially useful when you always use trunk.
So... feature request  8-) for OPM.
(A similar feature request I entered in Mantis FPC was refused, btw)
I already have working code for SVN/GIT update, but Juha explained here why is not a good idea to add SVN/GIT support, and I agree with him: http://forum.lazarus.freepascal.org/index.php/topic,34297.msg276066.html#msg276066 . Trunk version sometimes(quite often actually) breaks code, it's not an issue for you, but OPM is used by less experienced users too.
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 11:14:05 am
@totya

I fixed in r57575. Please test.
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 11:47:20 am
@totya

I fixed in r57575. Please test.

Thanks, but it isn't an not important bug.. :)

Well, you say me, I test your package r57575 (svn version). And what is my latest quest for this package? :) SNV support? :)
Similar situation happen very often with other packages too... ;)

Okay, I find this package svn link... found here: https://www.developpez.net/forums/blogs/600183-gvasseur58/b1788/online-package-manager-lazarus/ (https://www.developpez.net/forums/blogs/600183-gvasseur58/b1788/online-package-manager-lazarus/)

Install...failed:

Quote
opkman_common.pas(126,45) Error: Identifier not found "TLazPackageType"
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 11:53:48 am
@totya

OPM is part of Lazarus. In order to get the latest version you have to switch to Lazarus trunk. You can use fpcupdeluxe.exe to install a separate instance of lazarus trunk without interfering with your current stable installation. Alternatively you can checkout with a svn client(tortoise, cmdline, etc) lazarus source(https://svn.freepascal.org/svn/lazarus/trunk), then build with your currently installed FPC.

PS: You can find OPM in the following directory: ($LazarusDir)\components\onlinepackagemanager
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 12:01:10 pm
@totya

OPM is part of Lazarus. In order to get the latest version you have to switch to Lazarus trunk. You can use fpcupdeluxe.exe to install a separate instance of lazarus trunk without interfering with your current stable installation. Alternatively you can checkout with a svn client(tortoise, cmdline, etc) lazarus source(https://svn.freepascal.org/svn/lazarus/trunk), then build with your currently installed FPC.

PS: You can find OPM in the following directory: ($LazarusDir)\components\onlinepackagemanager
@GetMem

Thank you for answer, but I don't want to use svn version of Lazarus or FPC. Fpcup... i tried it, but I was many problems with it.

New suggestion: Update OPM without svn Lazarus/FPC needed ;)
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 12:08:10 pm
Quote
New suggestion: Update OPM without svn Lazarus/FPC needed ;)
Unfortunately I can't. The OPM from trunk is not compatible with the OPM from a stable version. We made a lot of changes lately, OPM communicates much better with the built-in package system. See attached image from the following post: http://forum.lazarus.freepascal.org/index.php/topic,34297.msg268712.html#msg268712 . Long story short, you cannot install trunk OPM to 1.8 or 1.8.2 .
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 12:10:27 pm
@GetMem

Okay, I understand, thanks for the answer!
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 05:39:38 pm
Hi!

Simple question, after (clean) 1.8.2 Lazarus installed with OPK, where is the uninstall package function?

Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 06:43:44 pm
Start OPM, check "OnlinepackageManager" then press the "Install" button. OPM it will update itself from 1.0.0.0 to 1.0.1.2.

PS: 1.0.1.2 is the latest version which can run on a stable version like 1.8.2. After this you need Lazarus trunk.
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 09:04:39 pm
Start OPM, check "OnlinepackageManager" then press the "Install" button. OPM it will update itself from 1.0.0.0 to 1.0.1.2.

PS: 1.0.1.2 is the latest version which can run on a stable version like 1.8.2. After this you need Lazarus trunk.

I'm sorry I forgot it, I do it before. Now I see the uninstall button, thanks.

So, I install the latest Lazarus trunk + fpc fix, with FPCUpDeluxe. This app freeze after finished certainly... but seems to me Lazarus is working. The first look in Lazarus trunk, messages window doesn't scroll... now back to the OPM, I found a small bug again:

Filter: package status/installed.
I press Refresh button, and I get this:

Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 09:22:36 pm
Yes this is another bug. When you press the "Refresh" button, the json from the central repository is downloaded and parsed again, the tree cleared and re-populated.  In my opinion OPM should reset the filters to default(no filtering), but I'm open to any other suggestions.
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 09:27:32 pm
When you pressing "Refresh" button, the json from the central repository is downloaded and parsed again, the tree cleared and re-populated.  In my opinion OPM should reset the filters to default, but I'm open to any other suggestions.

In my opinion, if the filter is "Packages status" and "installed", IIRC I can see only installed packages after refresh too. This is logic I think.

If your opinion is reset the filter too, then I suggest change (after refresh)
"Package status" and "installed" to:

"Package status" and ""
or
"Packages" and ""

:)
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 09:37:33 pm
Hi!

I try latest OPM from Lazarus trunk, I want only install a package. But I got error:
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 09:41:57 pm
Quote
In my opinion, if the filter is "Packages status" and "installed", IIRC I can see only installed packages after refresh too. This is logic I think.
Yes I agree this is also logical, but the whole point of refresh is to see the changes in the central repository. If some filters are set you may not notice what package was updated/deleted etc...

Quote
If your opinion is reset the filter too, then I suggest change (after refresh)
"Package status" and "installed" to:

"Package status" and ""
or
"Packages" and ""
Done in r57578. Thanks for testing.

Quote
I try latest OPM from Lazarus trunk, I want only install a package. But I got error:
Something is not right then. Are you sure you installed Lazarus trunk? Go to Help-->About paste the screenshot here.
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 09:49:14 pm
Something is not right then. Are you sure you installed Lazarus trunk? Go to Help-->About paste the screenshot here.

Okay. Otherwise with "old" 1.8.2 Lazarus OPM Wthread install is okay.

Edit1.: If I want to uninstall this (wthread) package, I get same error as above.

Edit2.:
Done in r57578. Thanks for testing.

Well, Lazarus trunk update about half an hour... :)
Title: Re: Online Package Manager
Post by: balazsszekely on March 29, 2018, 09:58:13 pm
I just installed wthread with Lazarus trunk and works fine. It seems to me that your Lazarus somehow use an older version of OPM(config dirs mixed?). Please do the following:
1. Lazarus menu-->Packages-->Open package file
2. Go to your fpcupdeluxe\lazarus\components\onlinepackagemanger directory
3. Select onlinepackagemanager.lpk, compile then install. Can you install OPM?
4. After rebuild try to install another package again


PS: As you can see a lot of things can go wrong with a trunk version. This is why I don't like the idea to add support for trunk version of packages.  :)
PS: Can somebody else test whtread(simple install) with Lazarus trunk/OPM?
Title: Re: Online Package Manager
Post by: totya on March 29, 2018, 10:30:40 pm
(config dirs mixed?)

Thanks, but I'm not full stupid. (sorry for my simple English.) Mainly Lazarus uses own config in own directory (via secondary install). Lazarus trunk installed via fpcupdeluxe, this use own config directory too, under the own directory:
Quote
c:\fpcupdeluxe\config_lazarus

start icon link: C:\fpcupdeluxe\lazarus\lazarus.exe --pcp="C:\fpcupdeluxe\config_lazarus"

Lazarus config file: --primary-config-path=C:\fpcupdeluxe\config_lazarus

Please do the following:
1. Lazarus menu-->Packages-->Open package file
2. Go to your fpcupdeluxe\lazarus\components\onlinepackagemanger directory
3. Select onlinepackagemanager.lpk, compile then install. Can you install OPM?
4. After rebuild try to install another package again

After these steps, wthread install/uninstall works fine.

I suggest to you, show svn version in your app  anywhere.
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 12:16:08 am
Okay, I try again. I delete the Lazarus trunk directory except the svn directory. I delete the config dir. After I reinstall lazarus trunk with fpcupdeluxe, then I install OPM, then I install wthread via OPM, and this works now.

But I found new bug, this is harder than before.

I have two lazarus with two different dir(with own different config directory)

The first is the normal installed official lazarus (win32 1.8.2)
The second is the Lazarus trunk/fpc fixes, via fpcupdeluxe.

Well, I started the second (trunk) Lazarus. OPM start. I press Open (bottom button). I choose package file. New Lazarus started. BUT, this is the default Lazarus (first installation). This is cause many problem certainly (path duplication etc).

I suggest this app read the current Lazarus path, and use that.
Title: Re: Online Package Manager
Post by: Josh on March 30, 2018, 01:17:37 am
Hi

In each of the directories you have installed lazarus are you starting lazarus with the startlazarus item?

I have various installation of lazarus, each in its own folder. As long as I start them with the startlazarus item found in the installed folder/lazarus folder.

One thing I have to remeber to do, if I am using a package that I have in shared folder across different installations; is to force a build when switching lazarus version, just incase the compiled code (lib folder) is correct for the version of fpc bitness.

Just a thought
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2018, 07:38:25 am
@totya
Quote
Thanks, but I'm not full stupid.
Nobody suggested that you're stupid. You're less experienced with lazarus which is perfectly fine. We all been there at some point.

Quote
suggest this app read the current Lazarus path, and use that.
That's exactly what OPM does(use the same path as Lazarus). This is not an OPM issue, please try @josh suggestion(I never used startlazarus myself and everything works fine. I also have multiple fpcupdeluxe installation + a stable lazarus).
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 08:58:59 am
Hi

In each of the directories you have installed lazarus are you starting lazarus with the startlazarus item?

OMG! startlazarus.exe or lazarus.exe doesn't matter.

Read this: http://wiki.freepascal.org/Multiple_Lazarus (http://wiki.freepascal.org/Multiple_Lazarus)

Shortly, you have two choice possibility to start Lazarus with own config dir (so I use Windows, so, I talk about only the windows).

1. Start from shortcut. FPCDeluxe create it on end of the install, for example (default value):
Quote
C:\fpcupdeluxe\lazarus\lazarus.exe --pcp="C:\fpcupdeluxe\config_lazarus"

2. Better solution in config file in Lazarus directory: lazarus.cfg. Now for me this file contain this (default value):
Quote
--primary-config-path=C:\fpcupdeluxe\config_lazarus


Now, after the basic knowledge, back to the bug:

I wrote this:
Quote
Well, I started the second (trunk) Lazarus. OPM start. I press Open (bottom button). I choose package file. New Lazarus started. BUT, this is the default Lazarus (first installation). This is cause many problem certainly (path duplication etc).

Okay, slowly...

Trunk Lazarus started... with own config dir certainly...
OPM start from Package/Online Package Manager menu...
On the bottom, I see icons, see  attached picture #1
I click to the "Open" button.
Windows Explorer opened.
I navigate to my component folder, and to the component installer file. See attached picture #2
In this time nothing happen if I click to lpk file, because meanwhile I uninstall the first official Lazarus. But If don't do this, then the default Lazarus opened, as I said in my last post.
Why?
Because your app open package via Windows explorer. Windows explorer open package file via default programs database. The first official lazarus at the end of install, register Lazarus extension as default app. Do you understand me?
Now, because I uninstall the first official Lazarus, nothing happen if I want to open a package from your app via open button (second but same bug).
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2018, 09:11:49 am
Oh, I think I understand now. The "Open" button opens the local repository in windows explorer, so you don't have to do it manually, it's like a shortcut, but it's not meant to  open package files. For this you have to go to Lazarus menu-->packages-->Open package file.
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 09:24:54 am
Oh, I think I understand now. The "Open" button opens the local repository in windows explorer, so you don't have to do it manually, it's like a shortcut, but it's not meant to  open package files. For this you have to go to Lazarus menu-->packages-->Open package file.

Okay, I see you understand me, but I think this is problem, because if the official Lazarus register own files extensions to windows (or the user register these extensions later), the default Lazarus opened, and this is cause many problems, if the user doesn't look the version number of lazarus... :)
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2018, 09:43:43 am
Quote
Okay, I see you understand me, but I think this is problem, because if the official Lazarus register own files extensions to windows (or the user register these extensions later), the default Lazarus opened, and this is cause many problems, if the user doesn't look the version number of lazarus... :)
Yes it might be a problem for a beginner, but beginners don't use multiple instance of Lazarus in the first please. Once you choose to work with Lazarus trunk, you became an advanced user, so act like one and open the package from inside Lazarus.  :D
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 10:08:55 am
Quote
Okay, I see you understand me, but I think this is problem, because if the official Lazarus register own files extensions to windows (or the user register these extensions later), the default Lazarus opened, and this is cause many problems, if the user doesn't look the version number of lazarus... :)
Yes it might be a problem for a beginner, but beginners don't use multiple instance of Lazarus in the first please. Once you choose to work with Lazarus trunk, you became an advanced user, so act like one and open the package from inside Lazarus.  :D

I think not a big problem to handle open function correctly... or use simple ShowMessage: ('I'm sorry but I don't found myself, please open package/install package menu yourself!") :)
Title: Re: Online Package Manager
Post by: wp on March 30, 2018, 10:13:32 am
Oh, I think I understand now. The "Open" button opens the local repository in windows explorer, so you don't have to do it manually, it's like a shortcut, but it's not meant to  open package files. For this you have to go to Lazarus menu-->packages-->Open package file.
I indeed think that the caption of this button is misleading. The hint is correct, but without seeing the hint I'd think like totya that this button opens the package. Why not label it like "Local repo" instead of "Open"?
Title: Re: Online Package Manager
Post by: balazsszekely on March 30, 2018, 10:18:41 am
@wp
That was constructive as usual. Done in r57579. Thanks.
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 10:19:23 am
I indeed think that the caption of this button is misleading. The hint is correct, but without seeing the hint I'd think like totya that this button opens the package. Why not label it like "Local repo" instead of "Open"?

"Open local repo with lpk extension registered Lazarus version, which possible different Lazarus from this...." :)
Title: Re: Online Package Manager
Post by: wp on March 30, 2018, 10:35:59 am
No, the local repository does not have anything to do with the registered Lazarus version. The local repo is in the folder which you specify in the OPM under "Options" > "Folders" > "Local repository".

Normally the local repo is a subfolder of your Lazarus user config folder, i.e. that what is specified in the lazarus.cfg file or what you specify with the --pcp parameter. If you keep this setting, every Lazarus installation will have its own local repo.

On the other hand, you can set up a repository shared between several installations by entering a different path here and keeping this path across Laz installations. I have folder d:\prog_lazarus\packages for this purpose which is used as a local repo for laz trunk and Laz 1.8.0. I mostly work with trunk but don't see any problems when going back to v1.8.0 - all the packages are automatically re-compiled.
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 07:23:37 pm
No, the local repository does not have anything to do with the registered Lazarus version.

Hi master! :)

If you click (on windows) to the lpk file in the local repo, the "registered" (registered of extension) Lazarus started, and not the current running.

Typically possible (happen me too):

The user want install package from "local repo" to the current Lazarus installation. Open OPM, click to the Open (local repo), then click to the lpk. Well, the (extension) registered Lazarus started...

This is illogic for me, but I don't waste my time for it... :) Have a nice day! :)
Title: Re: Online Package Manager
Post by: wp on March 30, 2018, 08:38:52 pm
You should install individual packages from inside Lazarus (Menu "Package" / "Open Package File (.lpk)", not from the Explorer. Windows can register the .lpk extension only to a single application - this is not OPM's fault. When I install Lazarus I never register any file extensions, I never open Lazarus files by double-clicks - I have so many Lazarus version on my system this would certainly end up in a mess.
Title: Re: Online Package Manager
Post by: totya on March 30, 2018, 09:55:35 pm
You should install individual packages from inside Lazarus (Menu "Package" / "Open Package File (.lpk)", not from the Explorer. Windows can register the .lpk extension only to a single application - this is not OPM's fault. When I install Lazarus I never register any file extensions, I never open Lazarus files by double-clicks - I have so many Lazarus version on my system this would certainly end up in a mess.

This isn't problem for me, I only noticed this unwanted/illogic situtation. If .lpk isn't registered, this problem is not exists, or if only one Lazarus installed on the system... :)
Title: Re: Online Package Manager
Post by: lainz on April 08, 2018, 12:45:43 am
Hi @GetMem, I'm making a first release of the Material Design package
https://forum.lazarus.freepascal.org/index.php/topic,40813.msg282355.html#msg282355

I've tested it only under Windows.

And, here is the json for updates
https://github.com/bgrabitmap/materialdesign/blob/master/materialdesign.json

Currently it has only a single component, but with 5 different functionality.
Title: Re: Online Package Manager
Post by: balazsszekely on April 09, 2018, 02:34:09 pm
Hi lainz,

Thank you for the packages, I will update the main repository tomorrow. I was in a small vacation in the weekend.
Title: Re: Online Package Manager
Post by: lainz on April 09, 2018, 04:12:43 pm
Thanks. And hope you had a nice weekend.
Title: Re: Online Package Manager
Post by: balazsszekely on April 09, 2018, 05:41:17 pm
@lainz

Please test.   :)
Title: Re: Online Package Manager
Post by: lainz on April 09, 2018, 08:02:55 pm
@lainz

Please test.   :)

Thanks. Working fine. Now I can send updates with the json =)

A thing I need, you can upload the new version of this package?
https://github.com/wadman/wthread

I think is 1.0.3
Title: Re: Online Package Manager
Post by: balazsszekely on April 10, 2018, 06:19:38 am
@lainz
Quote
A thing I need, you can upload the new version of this package?
Done.

Quote
I think is 1.0.3
Yes it's 1.0.3
Title: Re: Online Package Manager
Post by: lainz on April 10, 2018, 01:58:08 pm
Thanks.
Title: Re: Online Package Manager
Post by: gerardus on April 11, 2018, 06:38:30 pm
Hi GetMem,
I just reinstalled Lazarus in one of the virtual machines I use for development. The Online Package Manager makes a HUGE difference.
I used to loose a lot of time getting the components I use and installing them.
Now it's a matter of minutes.
And Indy10, oh yeaaaah...
Thanks a lot, really.
Gerard.
Title: Re: Online Package Manager
Post by: balazsszekely on April 11, 2018, 07:44:50 pm
Thanks Gerard. I'm glad you like it.
Title: Re: Online Package Manager
Post by: lainz on April 11, 2018, 10:36:09 pm
The other package manager I use is NPM, and this OPM is better: it has an UI, is not like we're in the old school using the command line  :o

Plus you know what you're installing, not thousands of dependencies we ever will know what they're doing at the first place.

OPM says: it needs package ... you want to install?

Plus another thing: this is always working with 'current' technologies, say Lazarus 1.8, not is just 'for node xx only'.

On the other hand NPM has thousands of packages, but that is not for npm itself, is just only for the community and current trends in development.
Title: Re: Online Package Manager
Post by: matthius on April 23, 2018, 04:55:20 am
Hello !

First, i had added Extended Packages to packages.lazarus-ide.org.
But i had wanted to add the rest of every packages i use from another computer, included Extended.
But i cannot send any package now and my packages are not added.

Packages tried to add :
virtualdbtreeex
Fortes Report debugged
ExtPascal adapted
SuperForm
Ancestro Packages
ExtHML
CompoPerso
...
Title: Re: Online Package Manager
Post by: balazsszekely on April 23, 2018, 06:59:09 am
Hi matthius,

I saw the packages you sent, but unfortunately I cannot compile them. The new version of the "Extended Packages",  "SuperForm",  "Ancestro Packages" are not working.  All the other packages are depending on the "Extended Packages", so those are not working too.  The only one I managed to compile is "Alcinoe". More over the author, description, license info is missing from the lpk files.
"Virtualdbtreeex", "Fortes Report debugged" are already in the central repository. I cannot add the same package twice, each meta/lazarus package name must be unique. If you wish to work with different version of the same package, you should create a private repository(see attached image) + install a local http server on your computer.


regards,
GetMem
Title: Re: Online Package Manager
Post by: circular on April 24, 2018, 05:15:20 pm
@GetMem

Hi, just released a new version of BGRABitmap 9.6.2:
http://forum.lazarus.freepascal.org/index.php/topic,24239.msg284017.html#msg284017
Title: Re: Online Package Manager
Post by: balazsszekely on April 24, 2018, 05:36:56 pm
@circular

Thank you. I updated BGRABitmaps in the central repository. You can create an update json if you like, this way OPM will notify the users when a new version is available. The steps are described here: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates . Alternatively you can leave a message here, whenever a new stable version is available.
Title: Re: Online Package Manager
Post by: RDL on May 05, 2018, 08:09:06 am
@GetMem
Update indy to the opm repository.
@Remy Lebeau corrected openssl :)
Title: Re: Online Package Manager
Post by: balazsszekely on May 05, 2018, 08:31:39 am
@RDL
Done. Current Indy version in OPM is r.5456.  Thanks for the feedback.
Title: Re: Online Package Manager
Post by: Remy Lebeau on May 07, 2018, 11:13:07 pm
Done. Current Indy version in OPM is r.5456.  Thanks for the feedback.

Note, there was a logic bug introduced in r.5456 that has just been fixed in r.5457.
Title: Re: Online Package Manager
Post by: balazsszekely on May 08, 2018, 06:21:08 am
@Remy Lebeau
Quote
Note, there was a logic bug introduced in r.5456 that has just been fixed in r.5457.
Thanks. Updated to r.5457.
Title: Re: Online Package Manager
Post by: lainz on May 09, 2018, 08:53:22 pm
Hi @GetMem, how you are?  :)

I'm starting my first local http server in Pascal, seems that is really easy to make it with Brook Framework, and I found that's not available on OPM, maybe you can add it?

https://github.com/silvioprog/brookframework

The main package is packages\brookex.lpk that requires packages\brookrt.lpk, the other package says it's design time.

Thanks, and keep going!
Title: Re: Online Package Manager
Post by: balazsszekely on May 09, 2018, 09:12:36 pm
@lainz
Please test. I only added three packages by default(brookrt.lpk, brookdt.lpk, brookex.lpk). There are at least 10 more package, but those are plugins. In my opinion should not be installed by default(of course this can be changed in the future if needed).
Title: Re: Online Package Manager
Post by: lainz on May 09, 2018, 09:18:15 pm
Yes, I see some demos need extra packages, but I already made a working json server with the default packages.

I've tested with Lazarus 1.8.2, since I already have it installed in trunk, and installation with OPM went ok. Project compiling and running fine.
Title: Re: Online Package Manager
Post by: MementoMojito on May 12, 2018, 02:20:30 pm
Hi,
 
On a fresh Arch install with KDE plasma and a fresh lazarus-qt5 install (1.8.2) I can't install OPM. It complains it can't find opkman_FakeActiveX used by opkman_VirtualTrees when recompiling the IDE.
Original message (pardon my French):

"opkman_VirtualTrees.pas(329,3) Fatal: Impossible de trouver opkman_FakeActiveX utilisé par opkman_VirtualTrees."

However the file is present under /usr/lib64/lazarus/components/onlinepackagemanager/vst/units/qt/opkman_fakeactivex.pas and /usr/lib/lazarus/components/onlinepackagemanager/vst/units/qt/opkman_fakeactivex.pas

So not too sure what's going on here.
Also if it's an issue with Arch rather than OPM please let me know so I can report the issue to them.

Thanks in advance for the help.
Title: Re: Online Package Manager
Post by: balazsszekely on May 12, 2018, 03:20:51 pm
Hi MementoMojito,

The OPM shipped with 1.8.2 has a built-in, slightly older VTV(Virtual Tree View), that does not support qt5. The issue is already fixed in Lazarus trunk, more over the built-in version is removed and replaced with a newer VTV added to the components folder.
To fix the issue locally, please do the following:
1. Extract first attachment to: /usr/lib64/lazarus/components/onlinepackagemanager/vst/include
2. Extract the second attachment to: /usr/lib64/lazarus/components/onlinepackagemanager/vst/units
3. Reinstall OPM/rebuild IDE
Title: Re: Online Package Manager
Post by: MementoMojito on May 12, 2018, 08:27:45 pm
@GetMem

Thanks a lot for the help and the files.
Unfortunately I get the same error. I have also tried to copy them in /usr/lib/lazarus/components/onlinepackagemanager/vst/include and /usr/lib/lazarus/components/onlinepackagemanager/vst/units just in case but no joy.
Title: Re: Online Package Manager
Post by: balazsszekely on May 12, 2018, 08:33:29 pm
@MementoMojito
Quote
Unfortunately I get the same error. I have also tried to copy them in /usr/lib/lazarus/components/onlinepackagemanager/vst/include and /usr/lib/lazarus/components/onlinepackagemanager/vst/units just in case but no joy.
Try to delete the lib folder inside OPM, then rebuild IDE. I think it uses the old ppu files.

PS1: The extracted folder should look like as in the attached image(I'm on windows now, but the directory structure should be the same)
PS2: I tested with 1.8.2 and works fine
Title: Re: Online Package Manager
Post by: MementoMojito on May 12, 2018, 09:17:28 pm
Thanks again for the additional info.
And I hate to be that guy but it's still not working :/
I have made sure to copy the qt5 folder in /usr/lib/.. and /usr/lib64/..
Same error.

Not too sure what you mean for the lib folder in OPM, I don't have any?
Title: Re: Online Package Manager
Post by: balazsszekely on May 12, 2018, 09:33:14 pm
Quote
Thanks again for the additional info./
You're welcome.

Quote
And I hate to be that guy but it's still not working :/
Don't worry.  :) I'm trying to figure out why it fails at your side.

Quote
Not too sure what you mean for the lib folder in OPM, I don't have any?
There should be a lib folder inside OPM. It contains the ppu files(see attached image).

PS: Can you install Lazarus trunk/FPC 3.0.4 with fpupdeluxe(https://forum.lazarus.freepascal.org/index.php/topic,34645.0.html)? It won't interfere with your current installation.
Title: Re: Online Package Manager
Post by: MementoMojito on May 13, 2018, 02:28:59 pm
So fpcupdeluxe is being an absolute pain atm. I get a useful "Got an unexpected exception ... don't know what to do unfortunately." when trying to do the install via fpcupdeluxe-x86_64-linux-qt5
However after 20 retries I have managed to install FPC fixes + Lazarus fixes but same problem when trying to install OPM.
Now still fighting to try to install FPC trunk with Lazarus trunk...
Will keep you posted if I don't give up :)

P.S: I'm using fpcupdeluxe from here https://github.com/newpascal/fpcupdeluxe/releases/latest
Title: Re: Online Package Manager
Post by: balazsszekely on May 14, 2018, 07:08:30 am
@MementoMojito
I did try to install Arch linux to a virtual machine(this one: https://www.osboxes.org/arch-linux-201708-kde-plasma-cli-images-available-virtualbox-vmware/), but I'm unable to setup a network connection. Apparently nothing works in this particular VM.  I never had any problem before with other Linux distros.

PS: If you manage to install Lazarus trunk let me know. OPM should work fine there.
Title: Re: Online Package Manager
Post by: MementoMojito on May 14, 2018, 02:26:19 pm
Thanks for your time GetMem
So I have finally installed OPM via trunk but to do so I had to actually use fpcupdeluxe-x86_64-linux instead of fpcupdeluxe-x86_64-linux-qt5 so not really ideal and not what I wanted but it still better than nothing :)
Is there a git where I could grab the whole onlinepackagemanager folder to replace the lazarus-qt5 folder? if it makes sense to try that of course.

Title: Re: Online Package Manager
Post by: balazsszekely on May 14, 2018, 02:46:13 pm
Quote
So I have finally installed OPM via trunk but to do so I had to actually use fpcupdeluxe-x86_64-linux instead of fpcupdeluxe-x86_64-linux-qt5 so not really ideal and not what I wanted but it still better than nothing :)
OK I'm glad it's working. There are some issues with Fpcupdeluxe-x86_64-linux-qt5? If yes, then you should report it here http://forum.lazarus.freepascal.org/index.php/topic,34645.0.html

Quote
Is there a git where I could grab the whole onlinepackagemanager folder to replace the lazarus-qt5 folder? if it makes sense to try that of course.
I'm not sure if I understand what are you trying to achieve. You cannot mix OPM from trunk with a stable version of Lazarus(like 1.8.2). There was a lot of changes lately to make OPM more compatible with the built-in package manager, so the two versions(stable/trunk) are not interchangeable. You either stay with Lazarus stable/OPM stable, or switch to Lazarus trunk/OPM trunk.

PS: OPM is part of Lazarus, you can download it with a SVN client. If I'm not mistaken you can also find daily snapshots.

Title: Re: Online Package Manager
Post by: MementoMojito on May 14, 2018, 03:33:06 pm
Quote
OK I'm glad it's working. There are some issues with Fpcupdeluxe-x86_64-linux-qt5? If yes, then you should report it here http://forum.lazarus.freepascal.org/index.php/topic,34645.0.html
It looks like, I will give it a try on my Debian box as well and report it then.

Quote
You cannot mix OPM from trunk with a stable version of Lazarus(like 1.8.2).
So it answers my question, I guess for now I will stick with with the non qt5 version until I can use it.

Thanks again for all your help and OPM!
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 02:05:15 pm
@circular

Thank you. I updated BGRABitmaps in the central repository. You can create an update json if you like, this way OPM will notify the users when a new version is available. The steps are described here: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates . Alternatively you can leave a message here, whenever a new stable version is available.
Hi GetMem,

I see on the online package manager that BGRABitmap has already been updated. Is it automatic?

I looked for the Create button but I did not find it.

Sorry for that but I am a bit confused.
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 03:29:42 pm
Hi circular,

Quote
I see on the online package manager that BGRABitmap has already been updated. Is it automatic?
No. I did it manually. It will become automatic, only after you send me the update json. 
I did a small modification(hope it's OK). I changed the version number in the lpk file from 9.6.2. to 9.7.0. This is necessary since OPM reads the version number from the lpk file. Can you please also update the git repository.

Quote
I looked for the Create button but I did not find it.
Sorry for that but I am a bit confused.
No problem, I forget to mention that you should activate the "Package maintainer" profile first. You can do it in OPM-->Options as in the attached picture.
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 07:18:44 pm
Oops there was a problem with the merge. The version 9.7 was not actually published. I hope it is now. I incremented the version 9.7.1 to help the update process.

Here is a json file generated with OPM. However it seems the version in it is 9.7 instead of 9.7.1
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 07:56:04 pm
@circular
Quote
Oops there was a problem with the merge. The version 9.7 was not actually published. I hope it is now. I incremented the version 9.7.1 to help the update process.
I updated the main repository. The current version is 9.7.1. Thanks.
Quote
Here is a json file generated with OPM. However it seems the version in it is 9.7 instead of 9.7.1
I attached the modified version. Please do the following:
1. Upload "update_BGRABitmap.json"(first attachment) to your github page and paste here the link
2. When you release a new version, all you have to do is modify "update_BGRABitmap.json" in your github page. Namely just increase the "Version" entry and change the "DownloadURL" to point to the new zip(as in the attached image)
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 08:10:13 pm
Hi Circular,

Just tried to update using OPM it says 9.7.1, but I get this error
Warning: Recompiling BGRAReadTiff, checksum changed for BGRABitmapTypes
bgrareadtiff.pas(52,18) Fatal: Cannot find BGRAReadTiff used by BGRABitmapTypes, incompatible ppu=C:\lazarus_fixes\config_lazarus\onlinepackagemanager\packages\bgrabitmap-master\bgrabitmap\lib\i386-win32\3.0.5\bgrareadtiff.ppu, package BGRABitmapPack
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 08:26:09 pm
@josh
This issue has nothing to do with BGRABitmap or OPM. Most likely you have more then one version of BGRABitmap on your computer. When you try to install a newer version the IDE "get confused" and mix different ppu's. Rebuilding the IDE with "Clean all" usually helps, in worse case scenario you should rename the old BGRABitmap folder to something else, though in my experience this is not necessary. I can install a new versions of different packages without any issues.   
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 08:49:06 pm
Hi
I cannot build IDE with clean all or any other option as I get a popup windows file not found 'bgrareadtiff.pas', which ok clicked aborts the rebuild
I only have 9.7.1 showing in the installed packages.
I have tried removing bgrabitmap, and the deleting the bgrabitmap-master folder than OPM creates, restarted opened OPM and tried to install BGGRABITMAP and then I get the same error.

I will create a Fresh Lazarus Fixes install and try using that.
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 09:16:02 pm
Just create a fresh lazarus fixes build in a newfolder.
started lazarus, installed OPM.
Tried to Install BGABITMAP as first package, and it fails with same error cannot find bgrareadtiff.pas

bgrareadtiff.pas(78,12) Fatal: Cannot find BGRAReadTiff used by BGRABitmapTypes, incompatible ppu=C:\lazarus_fixes_new\config_lazarus\onlinepackagemanager\packages\bgrabitmap-master\bgrabitmap\lib\i386-win32\3.0.5\bgrareadtiff.ppu, package BGRABitmapPack

so deleted the lib folder from the bgrabitmap-master folder of opm, rebuild ide, i get file not found popup
bgrareadtiff.pas(78,12) Fatal: Cannot find BGRAReadTiff used by BGRABitmapTypes, incompatible ppu=C:\lazarus_fixes_new\config_lazarus\onlinepackagemanager\packages\bgrabitmap-master\bgrabitmap\lib\i386-win32\3.0.5\bgrareadtiff.ppu, package BGRABitmapPack


fpc 3.0.5
laz 1.8.3 rev 57989
i386-win32-win32/64
Title: Re: Online Package Manager
Post by: guest58172 on May 18, 2018, 09:44:42 pm
Question, why don't you setup a site where people could register and update their packages ? using a forum thread for this doesn't scale.
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 09:51:31 pm
Hmmm I wonder if it is related with some cyclic dependency. BGRABitmapTypes is using BGRAReadTiff which uses BGRABitmapTypes.

I am going to fix that...
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 09:58:02 pm
Ok, I re-released a version 9.7.2 without the cyclic dependency. Does it work?
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 10:01:52 pm
hi

in bgrareadtiff.pas

i removed the BGRABitmapTypes from the unit uses section
and added in the implentation section
uses BGRABitmapTypes;

it now compiles ok, and i can install bgracontrols..

Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 10:14:31 pm
I suppose that will do. Do I need to update the release with this change? I think the release 9.7.2 I just did solves that as well by removing the BGAReadTiff in the uses clause in BGRABitmapTypes.
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 10:15:45 pm
@BBasile
Quote
Question, why don't you setup a site where people could register and update their packages ? using a forum thread for this doesn't scale.
The site is already setup: https://packages.lazarus-ide.org/ , all we need is a CGI application. This is required by site administrators not by me. I explained many times before, that I don't have the time or the motivation to implement such a feature, at least not now. By the way it scale up nicely, there are not so many Lazarus packages out there unfortunately...this was also a surprise for me.
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 10:19:28 pm
@circular
I have just rechecked OPM (refreshed as well)  and it still says 9.7.1; so can't test changes 9.7.2 yet..
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 10:20:36 pm
Hi GetMem, here is the JSON on my github repository:
https://raw.githubusercontent.com/bgrabitmap/bgrabitmap/master/update_BGRABitmap.json
(with version 9.7.2)
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 10:21:07 pm
Quote
@circular
I have just rechecked OPM (refreshed as well)  and it still says 9.7.1; so can't test changes 9.7.2 yet..
Please try again.
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 10:26:04 pm
Quote
Hi GetMem, here is the JSON on my github repository:
https://raw.githubusercontent.com/bgrabitmap/bgrabitmap/master/update_BGRABitmap.json
(with version 9.7.2)
Great! Thank you. I added the link to the main repository. OPM already noticed the json(see attached image). Please note: usually you have to wait 1-2 minutes for the update to appear.
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 10:27:07 pm
Thanks GetMem for getting my through this.   :)
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 10:33:38 pm
@Circular and Getmem
Yes 9.7.2 has appeared and I have tested on the New fixes build I created, compiles ok.
installed in old fixes version, compiles and installs fine, had to re-install a few packages I removed previously; but that was because trying to diagnise the issue. A regular user upgrading should not have such issues with 9.7.2.
 :) :) O:-)
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 10:35:02 pm
Thanks for testing and doing the diagnosis josh. We found the issue very quickly.  8-)
Title: Re: Online Package Manager
Post by: Josh on May 18, 2018, 10:38:19 pm
Welcome
Maybe a change to post is required
https://forum.lazarus.freepascal.org/index.php/topic,24239.msg286267.html#msg286267
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 10:43:08 pm
Yep.
Title: Re: Online Package Manager
Post by: balazsszekely on May 18, 2018, 10:45:08 pm
@circular
I just noticed, you need to make a small modification to the json file. The "Version" and the "DownloadZipUrl" must be updated each time you release a new version.
Title: Re: Online Package Manager
Post by: circular on May 18, 2018, 11:12:27 pm
Ok. Done.
Title: Re: Online Package Manager
Post by: AlexTP on May 19, 2018, 06:40:18 pm
I see a bug in tooltips for component ATSynedit_ex. It shows 4 feature lines beginning with - char, while there s only 3 lines. 4th line is error from words 'auto-completion' with - char.
Title: Re: Online Package Manager
Post by: wp on May 20, 2018, 01:24:12 pm
A user of the German Lazarus forum noted that the package cmdline (sources at https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/cmdline/) does not compile any more. The culprit is the missing unit LazUTF8 in uCmdBox. I corrected the file on CCR. Since this package is distributed also by OPM I am attaching the zip of all files for replacement of the current zip in the OPM repository. Since I don't want to take care of this abandoned package I do not go the regular way with update-json etc - I hope you can understand.
Title: Re: Online Package Manager
Post by: balazsszekely on May 20, 2018, 04:34:18 pm
@Alextp
Quote
I see a bug in tooltips for component ATSynedit_ex. It shows 4 feature lines beginning with - char, while there s only 3 lines. 4th line is error from words 'auto-completion' with - char.
Fixed. Thanks. Please test.

@wp
Quote
A user of the German Lazarus forum noted that the package cmdline (sources at https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/cmdline/) does not compile any more. The culprit is the missing unit LazUTF8 in uCmdBox. I corrected the file on CCR. Since this package is distributed also by OPM I am attaching the zip of all files for replacement of the current zip in the OPM repository.
Thanks. I updated the package.

Quote
Since I don't want to take care of this abandoned package I do not go the regular way with update-json etc - I hope you can understand.
Sure, no problem.
Title: Re: Online Package Manager
Post by: garlar27 on May 30, 2018, 05:58:57 pm
I can't stop wondering how did I lived all this years without OPM!!!
It's a great package and it should be installed by default!!!
It saves me a lot f time searching packages and downloading new versions of them. Further more, I knew a lot of packages which I didn't know they existed !!!  :o

Thank you very much!!
 :D
The only thing I miss is an "export to file" / "import from file" button thus I can take an installed package list from my house to my workplace and to other OS installs.
Title: Re: Online Package Manager
Post by: balazsszekely on May 30, 2018, 06:30:23 pm
@garlar27
Quote
I can't stop wondering how did I lived all this years without OPM!!!
It's a great package and it should be installed by default!!!
It saves me a lot f time searching packages and downloading new versions of them. Further more, I knew a lot of packages which I didn't know they existed !!!
Thanks.

Quote
The only thing I miss is an "export to file" / "import from file" button thus I can take an installed package list from my house to my workplace and to other OS installs.
Did you try a right click on the tree(as in the attached image)?
Title: Re: Online Package Manager
Post by: garlar27 on May 30, 2018, 08:56:40 pm
Quote
The only thing I miss is an "export to file" / "import from file" button thus I can take an installed package list from my house to my workplace and to other OS installs.
Did you try a right click on the tree(as in the attached image)?
OMG  :o I don't remember if I did it, though the menu translation for "Checked" to spanish is ... "tricky". It should say "Marcado" (marked) or "Seleccionado" (selected) instead of "Comprobado" (checked, ascertain, tested, proved, make sure, check up on, test out).
Beside that, it works for me.

Thank you very much.
P/S: I would add the option to load and save the installed ones. You know I'm a lazy guy and nowadays I don't trust in my eyes nor in my accuracy with the mouse  :-[
Title: Re: Online Package Manager
Post by: balazsszekely on May 30, 2018, 09:59:32 pm
Quote
The menu translation for "Checked" to spanish is ... "tricky". It should say "Marcado" (marked) or "Seleccionado" (selected) instead of "Comprobado" (checked, ascertain, tested, proved, make sure, check up on, test out).
Unfortunately I do not speak Spanish, the translation was done by somebody else. However you can suggest another translation(correction) in the bugtracker if you like.

Quote
P/S: I would add the option to load and save the installed ones. You know I'm a lazy guy and nowadays I don't trust in my eyes nor in my accuracy with the mouse
I implemented it in r. 58054, but you need Lazarus trunk. It will be available though in the next Lazarus version. Thanks for the suggestion.
Title: Re: Online Package Manager
Post by: GAN on May 31, 2018, 06:19:06 am
@GetMem: spanish translation corrected and updated.

Traducción al español corregida y actualizada.

Best regards,
GAN.
Title: Re: Online Package Manager
Post by: balazsszekely on May 31, 2018, 06:44:30 am
Hi GAN,

Quote
Spanish translation corrected and updated.
Thank you. @Maxim will apply it soon.

regards,
GetMem
Title: Re: Online Package Manager
Post by: anderbelluno on May 31, 2018, 07:02:46 pm
Hi guys.
I'm try send my component package to getmem1@gmail.com but return a server error message.
Wy any mail to send my component?
Thank you so much.
Title: Re: Online Package Manager
Post by: balazsszekely on May 31, 2018, 07:40:56 pm
Hi anderbelluno,

Thanks for the package. The mail "getmem1@gmail.com" is a valid one, I have no idea why gmail blocks your mail. You have two choices:
1. Send the package via OPM. Please read this section for more details:
http://wiki.freepascal.org/Online_Package_Manager#Create
2. Just zip your package, upload somewhere, then paste the link here. If the zipped package is not bigger then 250Kb, you can also attach to your next post. To achieve this use the "Attachments and other options" below this textbox.

regards,
GetMem
Title: Re: Online Package Manager
Post by: anderbelluno on May 31, 2018, 09:49:25 pm
Hi man.
I try send twice, on thrice go.
Tanks for your help.
It's a great component. Try and see your power.  :D :D :D

tks.
Title: Re: Online Package Manager
Post by: balazsszekely on May 31, 2018, 10:07:41 pm
@anderbelluno

I received the zip file. I need the following information for each lpk: Description, Author and License. The fields are needed because OPM creates a preview(see attachment). This way the users will have more info about the packages.
1. Description -->1-2 sentence is enough, of course you can give a more detailed description if you like.
2. Author --> anderbelluno ?
3. License --> GPL- 3.0 ?
4. A better version number. "0.0.0.0" is also OK but it's kinda strange.  :)

Thank you!

PS: I uploaded your package so you can test, when the new informations are available, I will update the repository.
Title: Re: Online Package Manager
Post by: anderbelluno on June 01, 2018, 03:02:08 pm
Ok friend, I'm sorry for the lack of information.

1 - Description:
The proposal was fulfilled. REST DW was created to facilitate the creation of CRUDs in the same model that we created applications for Client / Server Database. Today, being able to write data to a bank via WebService is too complex for simple operations, making scheduling of simple screens time-consuming. With REST Dataware, you no longer have to worry about creating SQL Insertion, Deletion, Read, and Execution methods via Webservice; Simply add a RESTDataBase connection component and add a RESTClientSQL component that will already have your SQL solution fully functional as you did back in the day and with all the power of modern REST / JSON technology with data compression and everything the language can offer. , have fun.

2 - Author:
Gilberto Rocha da Silva

3 - license:
GPL- 3.0

4 - Version number: 1.4.2.7 (We are following the commits in the source forge to follow a version number. But we are migrating to GitHub every repository).

Again thank you very much for the help.

Ps. Did you test the component? What do you think?
Title: Re: Online Package Manager
Post by: anderbelluno on June 01, 2018, 08:00:05 pm
@GetMem

Hi, you recive my mail with json file?

It's Ok?
Title: Re: Online Package Manager
Post by: lainz on June 02, 2018, 04:17:52 am
Hi @GetMem, testing Online Package Manager on macOS and works nicely.

Edit: well... I talked too fast. It works if I open a project and install missing dependencies, but checkboxes doesn't works with qt IDE. So I can't choose a package to install with the menu.

But is not your problem, is just the status of Lazarus in Mac, and my first day with Mac.
Title: Re: Online Package Manager
Post by: balazsszekely on June 02, 2018, 10:10:27 am
Hi guys

I'm away for  a few days, with no internet connection. I'll back soon.
Title: Re: Online Package Manager
Post by: anderbelluno on June 02, 2018, 10:30:49 am
Ok.
But i need update REST Dataware on OPM.
It's possible?

Now i have a repository on GitHub.
And the important update for RDW is available.

Tankyou.
Title: Re: Online Package Manager
Post by: balazsszekely on June 03, 2018, 04:51:39 pm
@anderbelluno
First of all sorry for the delay, I was in a small trip for a few days with no pc or internet connection. I added the latest version of REST Dataware to OPM(1.4.3.1). I also updated the description, author, license and version field, you should do the same in your git repository. Just open the 3 lpk files, change the fields and click the save button. Please note: usually OPM targets only stable versions, there are a few exception where the release cycle is slow. When you release a new major version, just let me know and I will update the central repository.

@lainz
I only tested with carbon. Cocoa is unstable unfortunately. I also tested with qt but under windows, where qt works nicely. If I understood you correctly you cannot check a package(OPM) to install it? Try to select a package, then press space. 
Title: Re: Online Package Manager
Post by: lainz on June 03, 2018, 05:07:55 pm
Thankyou, that works =)
Title: Re: Online Package Manager
Post by: anderbelluno on June 04, 2018, 06:56:52 am
Wonderful, I'll make the changes you suggested to me.
Do not worry about the delay.
Can I continue to report new versions on this channel, or would you prefer another?

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on June 04, 2018, 09:52:49 am
@anderbelluno
Quote
Can I continue to report new versions on this channel
Yes. This thread is the preferred way because other people can see the changes and join the discussion when needed.

Quote
Thanks.
You're welcome.
Title: Re: Online Package Manager
Post by: anderbelluno on June 04, 2018, 09:58:46 am
I made a video showing the installation of REST Dataware via OPM.
It's in Portuguese, but you'll understand. LOL

https://www.youtube.com/watch?v=6TavWR7adSE

Again, thank you very much.
Title: Re: Online Package Manager
Post by: anderbelluno on June 14, 2018, 06:25:19 pm
hi Sr.

we have a new version available.

https://github.com/Rest-Dataware/RDW-Componente

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on June 14, 2018, 08:26:30 pm
Hi anderbelluno,

I updated the package in central repository to 1.4.4.8. Thanks for the new version.

regards,
GetMem
Title: Re: Online Package Manager
Post by: BeanzMaster on June 16, 2018, 12:20:39 pm
Hi Getmem like for fpcupdeluxe i forgot, i've also some feedback posted as comment from my tutorial here :
https://www.developpez.net/forums/d1848091/autres-langages/pascal/lazarus/tutoriel-installer-lazarus-paquets-fpcupdeluxe-online-package-manager-jerome-delauney/

Tranlated from french to english with google translate :

Quote
I had only one problem: I had castle engine (which I like a lot) installed in version 6.4 and the transition to version 6.5 did not like it at all. OPM was experiencing unit conflicts (I'm surprised), displayed a partial install, and refused to uninstall the product. Again, I had to make repairs in the hand ... Well, all this is not very serious if you consider the comfort brought in all.

Quote
hat the application only keeps track of the software installed thanks to it, it's normal, okay. But that it does not take care of the already installed packets, it is a problem: the user expects that the problem is at least signaled with a message of the type: 'attention, this package already exists.' Then, the options are to choose: propose to uninstall it automatically, abandon the operation, run the risk of installing it anyway. The worst solution (in my opinion) is the one adopted: we try to install without worrying about anything assuming that the IDE is clean ...

Best regareds and thanks for your work  8-)
Title: Re: Online Package Manager
Post by: balazsszekely on June 17, 2018, 08:48:51 am
@BeanzMaster
Quote
i've also some feedback posted as comment from my tutorial here :
https://www.developpez.net/forums/d1848091/autres-langages/pascal/lazarus/tutoriel-installer-lazarus-paquets-fpcupdeluxe-online-package-manager-jerome-delauney/
Very nicely done. Somebody should translate your tutorial to English, a lot of people would learn from it.

Quote
I had only one problem: I had castle engine (which I like a lot) installed in version 6.4 and the transition to version 6.5 did not like it at all. OPM was experiencing unit conflicts (I'm surprised), displayed a partial install, and refused to uninstall the product. Again, I had to make repairs in the hand ... Well, all this is not very serious if you consider the comfort brought in all.
The current version of Castle engine in OPM is 6.4 I will switch to 6.5 soon and fix the remaining issues.

Quote
hat the application only keeps track of the software installed thanks to it, it's normal, okay. But that it does not take care of the already installed packets, it is a problem: the user expects that the problem is at least signaled with a message of the type: 'attention, this package already exists.' Then, the options are to choose: propose to uninstall it automatically, abandon the operation, run the risk of installing it anyway. The worst solution (in my opinion) is the one adopted: we try to install without worrying about anything assuming that the IDE is clean ...
I'm not sure about this one. OPM will warn you if a package is already installed. Please see attached screenshot.

Quote
Best regareds and thanks for your work  8-)
Thanks for the feedback, if somebody reports more issues please let me know. I cannot check all Lazarus related webpages. I didn't even know about www.developpez.net


PS: You should file a bugreport about QT5/Cocoa related issues(Options in toolmenu, exception when IDE starts) so it can be fixed. Thank you.
Title: Re: Online Package Manager
Post by: BeanzMaster on June 17, 2018, 11:27:10 am
Very nicely done. Somebody should translate your tutorial to English, a lot of people would learn from it.
Yes it will be nice. It is for that i keep the Microsoft Translate plugin on top left the article.

The current version of Castle engine in OPM is 6.4 I will switch to 6.5 soon and fix the remaining issues.
Great ;)

I'm not sure about this one. OPM will warn you if a package is already installed. Please see attached screenshot.

The user have installed package manually in Lazarus/Components folder . So it is OPM check this folder to ?
I'm also think it will be better OPM install Package in a sub-folder in the Lazarus/Components folder instead in the hidden Lazarus's configuration folder (mainly under Windows).  I say we can change it but most user don't do it.

PS: You should file a bugreport about QT5/Cocoa related issues(Options in toolmenu, exception when IDE starts) so it can be fixed. Thank you.

Yes buft i've problem with bugreport i can't Loggin in with my E-mail always report me i don't exist or i was bannished :( I don't say why.

Best regards
Title: Re: Online Package Manager
Post by: JanRoza on June 17, 2018, 01:47:19 pm
I always change opm's folder config so that its repository is equal to the lazarus\compinents folder. As far as I can tell opm then shows the correct info about installed packages.
Title: Re: Online Package Manager
Post by: lainz on June 17, 2018, 05:13:08 pm
Hi, I found this package today:
https://github.com/afuriza/kyoukai_framework
Title: Re: Online Package Manager
Post by: balazsszekely on June 17, 2018, 05:13:57 pm
@BeanzMaster, @JanRoza
Quote
The user have installed package manually in Lazarus/Components folder . So it is OPM check this folder to ?
Yes. The Lazarus IDE or the internal package manager to be more precise, knows about every single installed packages, more over knows about the run-time only packages too. OPM queries the information when needed via the PackageInt interface, like this:
Code: Pascal  [Select][+][-]
  1. var
  2.    PackageCnt: Integer;
  3.    I: Integer;
  4.    Package: TIDEPackage;
  5. begin
  6.   PackageCnt := PackageEditingInterface.GetPackageCount;
  7.   for I := 0 to PackageCnt - 1 do
  8.   begin
  9.      Package := PackageEditingInterface.GetPackages(I);  
  10.      //...
  11.   end;
  12. end;
  13.  

Quote
I'm also think it will be better OPM install Package in a sub-folder in the Lazarus/Components folder instead in the hidden Lazarus's configuration folder (mainly under Windows).  I say we can change it but most user don't do it.
The Lazarus/Components folder is read only in some Linux distros. This is why OPM installs the packages in the config directory which is always writable for every user. You can change it if you like under windows.
Title: Re: Online Package Manager
Post by: balazsszekely on June 17, 2018, 05:15:47 pm
@lainz
Quote
Hi, I found this package today:
https://github.com/afuriza/kyoukai_framework
Did you test it? Should I add it to OPM?
Title: Re: Online Package Manager
Post by: lainz on June 17, 2018, 05:16:49 pm
I'm testing it now, I will tell you soon.
Title: Re: Online Package Manager
Post by: lainz on June 17, 2018, 05:22:33 pm
Hi again, 2 of 3 tests are actually working.
Looks promising, just keeping an eye on it.

Edit: what I like is that it says can be bundled with an existing application, a thing that I can't find how to do with Brook Framework.
Title: Re: Online Package Manager
Post by: balazsszekely on June 17, 2018, 05:25:49 pm
OK. Thanks, I will install it if works fine. I will also update BGRABitmap, BGRAControls soon. 
Title: Re: Online Package Manager
Post by: lainz on June 17, 2018, 05:28:25 pm
OK. Thanks, I will install it if works fine. I will also update BGRABitmap, BGRAControls soon.

Thankyou. I just discovered that repository because he suscribed to my github, how small is the world =)

Edit: of course, I will keep testing it, until it's good to publish.
Title: Re: Online Package Manager
Post by: wp on June 21, 2018, 12:20:46 am
I uploaded a new version of tvplanit (v1.2). GetMem, could you please update the OPM repository?
Title: Re: Online Package Manager
Post by: balazsszekely on June 21, 2018, 09:52:14 am
@wp
I'm on hollidays for a few weeks with a small break on Saturday, I will try to add it then. Sorry for the inconvenience.
Title: Re: Online Package Manager
Post by: wp on June 21, 2018, 10:15:18 am
@wp
I'm on hollidays for a few weeks with a small break on Saturday, I will try to add it then. Sorry for the inconvenience.
No problem. Have nice holidays!
Title: Re: Online Package Manager
Post by: tudi_x on June 22, 2018, 10:23:56 am
@GetMem
any chance of making Online Package Manager Ansible friendly?
a nice holiday!
Title: Re: Online Package Manager
Post by: JuhaManninen on June 22, 2018, 02:06:37 pm
any chance of making Online Package Manager Ansible friendly?
I found Ansible by a web search. It "automates software provisioning, configuration management, and application deployment".
What should Online Package Manager exactly do to be Ansible friendly?
Title: Re: Online Package Manager
Post by: tudi_x on June 22, 2018, 02:33:06 pm
@JuhaManninen
expose ways in which packages can be installed in an automated way by Ansible.
Ansible can basically run shell commands on remote hosts or issue HTTP (say GET) requests.

i think a way would be to have a URL to which Ansible can get back a JSON from OPM.
based on this JSON subsequent actions could be triggered to install desired packages.
i would say that GET requests based on the JSON could be assessed as a trigger for a package install with a final method for selection end and recompilation.

JSON parsing is easy with Ansible: http://wiki.lazarus.freepascal.org/with_GUI (http://wiki.lazarus.freepascal.org/with_GUI) (bottom part)

Title: Re: Online Package Manager
Post by: balazsszekely on June 23, 2018, 08:57:08 am
@wp
I updated tvplanit to 1.2. Thanks for the new version.

@tudi_x
Quote
any chance of making Online Package Manager Ansible friendly?
I fail to see how Ansible would help to install packages. OPM depends on Lazarus, in fact OPM without Lazarus is worthless. Once you have a working IDE, just use the internal package manager and/or OPM to manage packages. Why involve another application? I'm I missing something?

PS: If really helps I'm not against it, but you have to do it by yourself. I can apply patches if necessary.
Title: Re: Online Package Manager
Post by: tudi_x on June 23, 2018, 10:07:01 am
@GetMem
Ansible would help with configuration management.
the flow to install Lazarus for a developer workstation could be:

a. 4 steps to install Ansible prerequisites (one time only):
- sudo adduser ansible
- put ansible user in sudo group and do not request password
- sudo apt-get install -y python
- ssh-copy-id ansible@<host IP>
b. with Ansible - install Lazarus using fpclazup (http://wiki.lazarus.freepascal.org/headless)
c. with Ansible - install needed packages for Lazarus development (with OPM)

my point was to have the packages installed automatically and not by human intervention, thus moving to the advantages of the configuration management / DevOps approach. i thought OPM could do it with modifications and headless.

OPM is wonderful but still every time I need to pick manually the packages to install and manually submit.
Title: Re: Online Package Manager
Post by: JuhaManninen on June 24, 2018, 10:38:05 am
b. with Ansible - install Lazarus using fpclazup (http://wiki.lazarus.freepascal.org/headless)
Why is fpclazup pulled in here? There are easier ways to install Lazarus.

Quote
my point was to have the packages installed automatically and not by human intervention, thus moving to the advantages of the configuration management / DevOps approach. i thought OPM could do it with modifications and headless.
OPM is part of an IDE which deals exactly with human intervention. When you run Lazarus or any other IDE, you are already using a graphical desktop. Then a headless configuration with scripts does not make sense IMO.
Even if you run Lazarus/OPM remotely, you still use a graphical desktop. Always.
OTOH, I don't have much experience of such configuration management tools. Maybe there is a valid use case which I don't see.

Quote
OPM is wonderful but still every time I need to pick manually the packages to install and manually submit.
True. There should be a way to install a set of packages at one go, for example when duplicating a design environment to another computer.
Your Ansible integration however sounds like an overkill for the task. It could be a simple text file or cmd line parameters for Lazarus. Actually it is possible already but I forgot the details. I must consult Mattias. Hold on ...
Title: Re: Online Package Manager
Post by: balazsszekely on June 24, 2018, 11:04:50 am
@JuhaManninen
Quote
True. There should be a way to install a set of packages at one go, for example when duplicating a design environment to another computer.
If you right click the tree, there is an option to export checked(or installed) packages(see attached image). All you have to do is check your favorit packages then save it to a file. Next time or in a different environment, just import back the checks and you can install them in one shot. I plan to add a command line options as well, but as you mentioned you must pass the parameters to Lazarus which complicates the issue a little bit.
Title: Re: Online Package Manager
Post by: wp on June 24, 2018, 11:17:54 am
If you right click the tree, there is an option to export checked(or installed) packages(see attached image).
This sounds great. But: Does "Save Packages" > "Install" save also the packages not installed by OPM? Or what if a package is available via OPM but is installed from the author's svn/git directly in a different version? Doesn't this end up in chaos when the saved packages are restored on another Lazarus installation?
Title: Re: Online Package Manager
Post by: JuhaManninen on June 24, 2018, 11:31:19 am
This sounds great. But: Does "Save Packages" > "Install" save also the packages not installed by OPM? Or what if a package is available via OPM but is installed from the author's svn/git directly in a different version? Doesn't this end up in chaos when the saved packages are restored on another Lazarus installation?
... and what about packages installed from Lazarus components/ directory? They are equally important when duplicating a design environment.
Title: Re: Online Package Manager
Post by: balazsszekely on June 24, 2018, 11:32:13 am
@wp
Quote
But: Does "Save Packages" > "Install" save also the packages not installed by OPM?
No. It strictly refers to packages listed in OPM, preferably installed by OPM. Maybe I should change the caption  to "Installed by OPM".

Quote
Or what if a package is available via OPM but is installed from the author's svn/git directly in a different version? Doesn't this end up in chaos when the saved packages are restored on another Lazarus installation?
Yes, it could and up in chaos, but this is also true when you try to install packages via the built in package manager(the classical way). If you are an advanced user with many version of a particular package you should take extra steps to avoid problems, but you know this much better then most of us, since you maintain a lot of packages.   :)


@JuhaManninen
Quote
... and what about packages installed from Lazarus components/ directory? They are equally important when duplicating a design environment.
I cannot imagine a tool that will work in every possible scenarios and will successfully duplicate the installed components. Think about different Lazarus/FPC version for example, not to mention package dependencies which can also change a lot with new version of a particular package.
Title: Re: Online Package Manager
Post by: wp on July 06, 2018, 09:29:36 pm
I uploaded a new release of fpspreadsheet, v1.10, to sourceforge. GetMem, could you please update the repository?

When I open OPM I see now only dashes ('-') in the column "External". Is this correct?
Title: Re: Online Package Manager
Post by: balazsszekely on July 06, 2018, 10:29:16 pm
Quote
I uploaded a new release of fpspreadsheet, v1.10, to sourceforge. GetMem, could you please update the repository?
Done. Thanks for the new version.

Quote
When I open OPM I see now only dashes ('-') in the column "External". Is this correct?
Apparently you forget two comas from the json. I attached the modified file. Please upload it to: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/OPM/update_FPSpreadsheet.json and replace the current one. The "External" column should work after the upload.
Title: Re: Online Package Manager
Post by: wp on July 06, 2018, 10:50:47 pm
Thanky you. I knew it... Are there any errors missing which I can make?

When writing about the dash ('-') I was also thinking of the other packages. There are only very few packages which contain a version number in the External column, usually there is the dash. Does this mean that it is only these few packages which provide an update-json?
Title: Re: Online Package Manager
Post by: balazsszekely on July 06, 2018, 10:58:55 pm
Quote
Are there any errors missing which I can make?
Don't worry. We all make mistakes all the time.

Quote
When writing about the dash ('-') I was also thinking of the other packages. There are only very few packages which contain a version number in the External column, usually there is the dash. Does this mean that it is only these few packages which provide an update-json?
In order for the external column to appear you must install the package first + must have a valid external json(http://forum.lazarus.freepascal.org/index.php/topic,34297.msg276901.html#msg276901).

Title: Re: Online Package Manager
Post by: wp on July 06, 2018, 11:51:25 pm
In order for the external column to appear you must install the package first + must have a valid external json(http://forum.lazarus.freepascal.org/index.php/topic,34297.msg276901.html#msg276901).
Ah, now I remember. Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on July 10, 2018, 06:26:01 am
Quote
Hi sir, we have a new version available of REST Dataware, to the update of repository

Thank you.
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: wp on July 11, 2018, 08:21:47 pm
I added the component TA3nalogGauge to the IndustrialStuff package (ported directly from the Torry site (https://torry.net/pages.php?id=502)) - see screenshot. The updated package is at https://sourceforge.net/projects/lazarus-ccr/files/industrialstuf/industrialstuff-0.2.0.zip/download, the update-json is at https://sourceforge.net/projects/lazarus-ccr/files/industrialstuf/OPM/update_industrial.json/download. Let's see what's wrong today...  ;)

For Delphi users: The component still works with Delphi (not sure about the others in the package, though).

After finishing the port I realized that the same component is contained also in the CodeTyphon package pl_ExControls. So, if somebody installs both packages there will be a naming conflict.

BTW: The antialiasing in the component is ported using a LazIntfImage and its Colors property. The source contains another . faster - variant using the GetDataLineStart of the LazIntfImage, but this crashes due to memory overflow (commented "FastAntiAliasPicture" method) - I cannot find the reason... Maybe somebody sees the issue immediately.
Title: Re: Online Package Manager
Post by: Trenatos on July 11, 2018, 10:10:05 pm
Is there any way we could get descriptions for the various packages?

I've no idea what most of them are, and there's no easy way to find out.

I know we can't be updating all their repos, but could we add an internal OPM description section?
Title: Re: Online Package Manager
Post by: balazsszekely on July 12, 2018, 06:32:17 am
@wp
I updated IndustrialStuff. Everything went well, thanks for the new version.

Quote
After finishing the port I realized that the same component is contained also in the CodeTyphon package pl_ExControls. So, if somebody installs both packages there will be a naming conflict.
I will leave it as it is for now until the faith of pl_* packages will be decided. It looks like the genuine CT packages are rare. By genuine I mean is developed by them or maintained only by them. More over as time passes by it becomes evident that the CT package system is a mess(how pl organize they packages is beyond me, I do not understand the logic). I'm still not against them, but I see no reason to switch to CT nowadays.
Title: Re: Online Package Manager
Post by: balazsszekely on July 12, 2018, 06:39:53 am
@Trenatos
Quote
Is there any way we could get descriptions for the various packages?
Just hover the mouse over a meta package(root node). It will display the info for every lpk file(see attached image). The behaviour of the hint window can be changed in the option.

Quote
I've no idea what most of them are.
Neither do I.

Quote
I know we can't be updating all their repos, but could we add an internal OPM description section?
If you(or somebody else) is willing to test 243 lpk files, review it and write a detailed description, I will add an extra row with an internal OPM description. This is a promise.
Title: Re: Online Package Manager
Post by: wp on July 12, 2018, 09:34:05 am
I know we can't be updating all their repos, but could we add an internal OPM description section?
And who updates that?

The description is contained within the lpk file, and it is the task of the package owner to provide a good description. Unfortunately, many package owners put little effort into the description.

A good example: "ATTabs"
Quote
ATTabs: component for lite tabs. OS independent, fully custom drawn.
- can show x-icons in many styles
- can show plus pseudo-tab
- can show scroll arrows if lot of tabs
- can show flat tabs (Material style)
- can use multi-line mode
- can show colored tabs
- can show drop-down tab menu
- can show icons/numbers on tabs
- can confirm tab closing
- allow tab owner-draw
- drag-drop tabs, also to another control
etc.

ATGroups: several page-controls (up to 6), based on ATTabs, groups auto-arranged, with commands to move tabs between groups.

A bad example (one of "my" packages - I will have to change it soon): "TvPlanIt"
Quote
Lazarus Port of Turbo Power's VisualPlanIt components based on version 1.0.3.
(Runtime package)

The only thing which you can do is to try to contact the author and request him to update the package description.

Title: Re: Online Package Manager
Post by: avra on July 12, 2018, 11:32:53 am
I added the component TA3nalogGauge to the IndustrialStuff package
...
After finishing the port I realized that the same component is contained also in the CodeTyphon package pl_ExControls. So, if somebody installs both packages there will be a naming conflict.
Could you please add some prefix to that component and units to avoid naming conflict? You have to do it only once and problem will be solved for good. I would do it for pl_ExControls but that is not that easy because they get automatically converted each time from CodeTyphon.
Title: Re: Online Package Manager
Post by: Trenatos on July 12, 2018, 04:20:14 pm
@GetMem @wp

My point is that we, as a community, could come up with enough of a description that searching the OPM might be useful even when you don't know which package you're looking for.

I'm happy to work on some descriptions, as just having the packages available is an absolutely great start, a good addition would be descriptions.

Yes, I agree that package owners should have proper descriptions, but often they don't even when their packages are useful.

I'm not saying we should track every little thing and keep the OPM descriptions up to date with every update of every package, I'd just like a way to add a general description that doesn't rely on the package.

IE. "This package gives you functionality for working with spreadsheets" is better than nothing.
Title: Re: Online Package Manager
Post by: wp on July 12, 2018, 04:33:27 pm
Here's an idea which gives everybody the possibility to improve the descriptions: What about a wiki-page listing all packages available via OPM consisting of package title as displayed in the first OPM column and a description, maybe also a screenshot, similar to http://wiki.freepascal.org/Lazarus_Application_Gallery ? Every user registered to the wiki would be able to improve these descriptions even if the author of the package has disappeared. And OPM could even link to this site, in addition to the regular description.
Title: Re: Online Package Manager
Post by: Trenatos on July 12, 2018, 04:45:35 pm
I like it, but only if we can get the descriptions added to the OPM tool in Lazarus OR there's a link in there that opens the wiki page (Less good solution but at least there'd be a path)

The Wiki in general is plagued by bad upkeep, but if we keep a link between OPM and the page, it might not get lost in the Someone-Elses-Problem field over time.
Title: Re: Online Package Manager
Post by: wp on July 12, 2018, 04:59:24 pm
I added the component TA3nalogGauge to the IndustrialStuff package
...
After finishing the port I realized that the same component is contained also in the CodeTyphon package pl_ExControls. So, if somebody installs both packages there will be a naming conflict.
Could you please add some prefix to that component and units to avoid naming conflict? You have to do it only once and problem will be solved for good. I would do it for pl_ExControls but that is not that easy because they get automatically converted each time from CodeTyphon.
Sorry I was shouting too early. Looking more carefully if found:
BTW, when I first saw this unit I wondered about the strange name. Well, the "A3" stands for the three As in "AntiAliasedAnalogGauge"
Title: Re: Online Package Manager
Post by: Trenatos on July 13, 2018, 03:37:07 pm
I'm having an odd issue with the OPM where I can't install anything.

When I click the Install button, the buttons just disappear and nothing appears to happen.

OS X, trunk FPC and Laz, x64
Title: Re: Online Package Manager
Post by: Thaddy on July 13, 2018, 03:40:40 pm
OSX version: than I can maybe test.
Title: Re: Online Package Manager
Post by: Trenatos on July 13, 2018, 03:42:23 pm
10.11.5 - El Capitan
Title: Re: Online Package Manager
Post by: balazsszekely on July 13, 2018, 04:11:16 pm
@Trenatos
What widget set are you using? TToolbar is not working properly under cocoa hence the bug. If the WS is not cocoa please file a bug report or please provide more steps to reproduce the issue.
Title: Re: Online Package Manager
Post by: Trenatos on July 13, 2018, 04:28:02 pm
It's Cocoa.

I noticed that labels have a weird issue as well, they show up if I modify the height but not before.
Title: Re: Online Package Manager
Post by: mtournay on August 02, 2018, 04:26:29 pm
Hi there

There's a new version of zeoslib (v7.2)
In OPM it's still v7.1

Who is responsible of this package ?

btw, imho, there should be a sub-forum for OPM, this thread is toooo long
Title: Re: Online Package Manager
Post by: JanRoza on August 02, 2018, 04:58:41 pm
Too long?
You don't have to read everything from the beginning.  ;)
I always go to the last page directly, even if there were a 1000 messages before it, it won't hinder me.
Since all these messages belong to the same topic you should not split it up.
Just my humble opinion.
Title: Re: Online Package Manager
Post by: lainz on August 02, 2018, 06:51:42 pm
Hi, @GetMem, if you can, please update BGRAControls to 5.0 in OPM repository.

Thanks!  :)
Title: Re: Online Package Manager
Post by: balazsszekely on August 02, 2018, 08:16:09 pm
@mtournay
Quote
There's a new version of zeoslib (v7.2)
Who is responsible of this package ?
I am.

Quote
In OPM it's still v7.1
There were some encoding issues with 7.2, so we decided to stay with 7.1. For more details please do a forum search(I cannot recall the thread name).

Quote
btw, imho, there should be a sub-forum for OPM, this thread is toooo long
Thanks for the suggestion. In my opinion a whole sub-forum for OPM would be an overkill.


@lainz
Quote
Hi, @GetMem, if you can, please update BGRAControls to 5.0 in OPM repository.
Thanks for the new version. I updated the central repository.
Title: Re: Online Package Manager
Post by: marsupilami79 on August 03, 2018, 09:39:11 am
Quote
In OPM it's still v7.1
There were some encoding issues with 7.2, so we decided to stay with 7.1. For more details please do a forum search(I cannot recall the thread name).

Hello GetMem,

as Zeos developer I am a bit disappointed. I would have hoped that somebody raises a ticket on our Sourceforge tracker if there are issues with Zeos 7.2. Things like that usually can be resolved quickly. For us it is a headache to see that old, unsupported versions keep floating around.

Unfortunately I am unable to find the thread regarding these encoding issues. :( I will get in touch, as soon as we do a new Zeos 7.2 release.

Best regards,

Jan
Title: Re: Online Package Manager
Post by: balazsszekely on August 03, 2018, 10:22:34 am
Hi Jan,

Quote
as Zeos developer I am a bit disappointed. I would have hoped that somebody raises a ticket on our Sourceforge tracker if there are issues with Zeos 7.2. Things like that usually can be resolved quickly. For us it is a headache to see that old, unsupported versions keep floating around.
OK. Fair enough. I updated to Zeos 7.2. Thanks for the new version.

regards,
GetMem
Title: Re: Online Package Manager
Post by: af0815 on August 03, 2018, 02:59:05 pm
Is this Version 7.2 or 7.2.4 because it States in OPM as 7.2.0.0 ? The latest stable Version is flaged as 7.2.4-stable at sourceforge. So I expected 7.2.4.0 as Version in OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on August 05, 2018, 04:25:52 pm
@af0815
Quote
Is this Version 7.2 or 7.2.4 because it States in OPM as 7.2.0.0 ? The latest stable Version is flaged as 7.2.4-stable at sourceforge. So I expected 7.2.4.0 as Version in OPM.
7.2.4. OPM reads the version info from the lpk files which is still 7.2.0 inside zeosdbo-7.2.4-stable.zip.
Title: Re: Online Package Manager
Post by: af0815 on August 05, 2018, 07:03:17 pm
Thanks for the Information, i have filed a ticket #291 on sourceforge and leave the the information in the ZEOSlib forum. http://zeoslib.sourceforge.net/viewtopic.php?f=40&t=78565&p=100346#p100346



Thanks GetMem for the Info.
Title: Re: Online Package Manager
Post by: lainz on August 07, 2018, 10:53:48 pm
@lainz
Quote
Hi, @GetMem, if you can, please update BGRAControls to 5.0 in OPM repository.
Thanks for the new version. I updated the central repository.

Thankyou.

A question, there will be a new version of rx package that can be compiled in trunk available in OPM?

I know I should ask the developer, but there was already a discussion
https://forum.lazarus.freepascal.org/index.php/topic,41835.msg291557.html#msg291557

The question is if that trunk version will work as well in stable lazarus...
Title: Re: Online Package Manager
Post by: balazsszekely on August 08, 2018, 06:39:13 am
@lainz
Please try again. It should work now with every Lazarus(1.8.0+) and FPC(3.0.4+) combinations.
Title: Re: Online Package Manager
Post by: lainz on August 08, 2018, 11:27:02 pm
@lainz
Please try again. It should work now with every Lazarus(1.8.0+) and FPC(3.0.4+) combinations.

Thanks, it's working!
Title: Re: Online Package Manager
Post by: wp on August 13, 2018, 03:15:52 pm
Version 1.10.1 of fpspreadsheet has just been released. It is mainly based on the bug fixes in relation to https://forum.lazarus.freepascal.org/index.php/topic,42168.0.html

GetMem, please could you add the new release to OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on August 13, 2018, 05:56:02 pm
@wp
Quote
GetMem, please could you add the new release to OPM?
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: BSaidus on August 13, 2018, 05:58:55 pm
Hello.
I've encountred this:
1. Error decompressing & installing indy10 for use with  RESTDataware.
2. Is there any port for mORMot??
Thanks.

Title: Re: Online Package Manager
Post by: balazsszekely on August 13, 2018, 06:13:25 pm
Hi BSaidus,

Quote
1. Error decompressing & installing indy10 for use with  RESTDataware.
Yes, I saw that error myself 1-2 times. The zipper cannot extract the Indy archive, to be more precise cannot overwrite an already installed Indy folder. I'm not sure what exactly causes the issue, it only happens to Indy, I will try to find a solution soon. 
Before installing RESTDataware please uninstall Indy first, then delete the folder manually. RESTDataware will install Indy back because it depends on it. A clean installation always works.

Quote
2. Is there any port for mORMot??
Unfortunately mORMot doesn't use packages(lpk files) so I cannot add it to the central repository. The whole concept of the package manager is build around lpk files.

regards,
GetMem
Title: Re: Online Package Manager
Post by: AlexTP on August 13, 2018, 07:38:19 pm
Since i cannot see ShapeLine in OPM, i ask to add it.
I renamed component files,  and moved files in repo.
Wiki-- http://wiki.freepascal.org/ATShapeLine
Title: Re: Online Package Manager
Post by: balazsszekely on August 13, 2018, 07:59:38 pm
@Alextp
Quote
Since i cannot see ShapeLine in OPM, i ask to add it.
I renamed component files,  and moved files in repo.
Wiki-- http://wiki.freepascal.org/ATShapeLine
Done. Thanks for the package.
Title: Re: Online Package Manager
Post by: Trenatos on August 15, 2018, 03:16:30 am
@GetMem, with the issues on Cocoa and the bar, would it be possible to get an option added to the tree popup-menu for installing the selected item(s)?

The installer function seems to work, just the graphics glitch blocking it from being clicked.
Title: Re: Online Package Manager
Post by: balazsszekely on August 15, 2018, 01:08:47 pm
Quote
@GetMem, with the issues on Cocoa and the bar, would it be possible to get an option added to the tree popup-menu for installing the selected item(s)?
The installer function seems to work, just the graphics glitch blocking it from being clicked.
I will try to add it in the next few days. I'm not sure though how many package will install under cocoa, since it's a relatively new widgetset. Thanks for the feedback.
Title: Re: Online Package Manager
Post by: Trenatos on August 15, 2018, 04:29:45 pm
Before I was having trouble with the buttons, most things seemed to install fine  :)
Title: Re: Online Package Manager
Post by: balazsszekely on August 15, 2018, 04:57:48 pm
@Trenatos

I added the following short cut keys:
Quote
Ctrl + R  Refresh package list
Ctrl + D  Download package
Ctrl + I  Install package
Ctrl + E  Install package from External Source 
Ctrl + U  Uninstall package
Ctrl + L  Open Local Repository
Ctrl + C  Cleanup
Ctrl + P  Create Repository Package
Ctrl + O  Options
Ctrl + H  Help

Please test with trunk.
Title: Re: Online Package Manager
Post by: Trenatos on August 15, 2018, 05:12:41 pm
No joy I'm afraid, seems to get overridden by Lazarus/system hotkeys.
Title: Re: Online Package Manager
Post by: balazsszekely on August 15, 2018, 05:15:02 pm
Quote
No joy I'm afraid, seems to get overridden by Lazarus/system hotkeys.
It works fine here. Please test with r. 58715. Initially I did not commit the form.
Title: Re: Online Package Manager
Post by: Trenatos on August 15, 2018, 05:48:31 pm
Odd, I can't get the hotkeys to work (I used fpcupdeluxe to update laz and fpc to trunk), but now I can use the dropdown next to the regular install button and click the options (Local/repo) and it seems to work.
Title: Re: Online Package Manager
Post by: mtournay on August 20, 2018, 02:14:16 pm
Hi

Thank you everybody, for zeos package update !

regards
Title: Re: Online Package Manager
Post by: John Landmesser on August 20, 2018, 08:46:35 pm
Hi,

are there any statistics available of how many downloads a package had since it is listed in Online Package Manager?
Title: Re: Online Package Manager
Post by: balazsszekely on August 23, 2018, 09:42:05 pm
@John Landmesser

Quote
are there any statistics available of how many downloads a package had since it is listed in Online Package Manager?
Unfortunately I don't have any statistic about package downloads. I'm not the site maintainer, only a regular user who has upload rights to https://packages.lazarus-ide.org/.
Title: Re: Online Package Manager
Post by: balazsszekely on August 24, 2018, 06:53:26 am
Hi all,

I added a new field named "Community description" for each metapackage(root node). The field will contain a short description of the package, but the information will be provided by us(community), not the package maintainer. This is especially important for packages that are no longer maintained.  If someone is regularly use a package and is willing to give a short description please let me know. 2-3 sentence is more then enough, no need for long text. For maintained packages the final word belongs to the developers, he/she has the right to change the text if necessary. For more info please see attached images(just a sample, not real info).
User Alextp came up with this very useful idea, he will also provide the description for the packages or at least a part of it.

As always suggestions and feedback are welcome. Thank you.

regards,
GetMem
Title: Re: Online Package Manager
Post by: Trenatos on August 24, 2018, 05:35:12 pm
Awesome addition, the community description.
Title: Re: Online Package Manager
Post by: AlexTP on August 24, 2018, 07:43:59 pm
I see tooltips for metapackages, and while tooltip is shown, i Alt+Tab to Firefox. It is Linux gtk2.
Result of alt+tab is still the same tooltip floating above firefox.
Title: Re: Online Package Manager
Post by: balazsszekely on August 25, 2018, 06:45:48 am
@Alextp
Quote
I see tooltips for metapackages, and while tooltip is shown, i Alt+Tab to Firefox. It is Linux gtk2.
Result of alt+tab is still the same tooltip floating above firefox.
It's a gtk2 issue, there was a long discussion in the mailing list. Nobody could come up with a complete solution. The problem is modal forms with FormStyle fsStayOnTop "misbehaves" on linux gtk2.

Monday I will continue to add the descriptions. Thanks again for your help.
Title: Re: Online Package Manager
Post by: AlexTP on August 26, 2018, 07:27:59 pm
bugreport.
Installed Kaaj Controls. I got error, smth about "see the package graph". (It is GTK2). Now "Package graph" dialog was opened in background - behind OPM. cannot work.
Title: Re: Online Package Manager
Post by: Thaddy on August 26, 2018, 07:36:32 pm
It's a gtk2 issue, there was a long discussion in the mailing list. Nobody could come up with a complete solution. The problem is modal forms with FormStyle fsStayOnTop "misbehaves" on linux gtk2.
Yes, you need BringToFront to solve it.
Title: Re: Online Package Manager
Post by: balazsszekely on August 26, 2018, 07:46:29 pm
@alextp
Quote
Installed Kaaj Controls. I got error, smth about "see the package graph". (It is GTK2). Now "Package graph" dialog was opened in background - behind OPM. cannot work.
As I said in my previous post, modal forms in gtk2 are not working properly. You can always close OPM to access the "package graph" window. For example under windows(just tested) everything works fine.
What is Kaaj controls(depends on fpgui)? Can somebody fix it? If it's an old, unused package I can delete it.

PS: I added the descriptions.

@Thaddy
Quote
Yes, you need BringToFront to solve it.
No. Unfortunately that's not gonna work.


Title: Re: Online Package Manager
Post by: lucamar on August 26, 2018, 08:27:00 pm
@Thaddy
Quote
Yes, you need BringToFront to solve it.
No. Unfortunately that's not gonna work.

The problem is that they are system-modal rather than application-modal, so nothing---short of another system-modal dialog---will show above them. There was a workaround, IIRC, somewhere in the GTK docs; unfortunately I just don't remember what it was :(
Title: Re: Online Package Manager
Post by: AlexTP on August 28, 2018, 11:03:38 am
- Homepage of MaterialDesign - 404
- LainzCodeStudio gives 2 build errors on installing (for 2 packages)
Title: Re: Online Package Manager
Post by: balazsszekely on August 28, 2018, 06:15:40 pm
@Alextp
Quote
- Homepage of MaterialDesign - 404
- LainzCodeStudio gives 2 build errors on installing (for 2 packages)
@lainz can you help us with the above issues?
Title: Re: Online Package Manager
Post by: lainz on September 01, 2018, 04:08:45 am
Hi, I've:
* Restored the material design repository, including a legend that is now part of BGRAControls, with some info about how it was included.
* Added a readme in Lainz Code Studio. For beginners and advanced users.
Title: Re: Online Package Manager
Post by: AlexTP on September 02, 2018, 10:40:29 am
gtk2. Sometimes I cannot scroll tooltip window - vert scrollbar (for lpk descripn) don't react to clicks. Sometimes it works.
I just opened IDE, called OPM, shown tooltip for PasMP and it dont work.
Tooltip shown at the screen bottom.
Screen: https://ibb.co/jxfgKe
Title: Re: Online Package Manager
Post by: balazsszekely on September 02, 2018, 05:04:11 pm
@lainz
Quote
Hi, I've:
* Restored the material design repository, including a legend that is now part of BGRAControls, with some info about how it was included.
* Added a readme in Lainz Code Studio. For beginners and advanced users.
Thank you.

@Alextp
Quote
gtk2. Sometimes I cannot scroll tooltip window - vert scrollbar (for lpk descripn) don't react to clicks. Sometimes it works.
I just opened IDE, called OPM, shown tooltip for PasMP and it dont work.
Thanks. I will investigate the issue.
Title: Re: Online Package Manager
Post by: anderbelluno on September 04, 2018, 09:13:02 pm
Hello sir,
We have a new version of REST Dataware.
Many fixes and new features.
Thank you so much.
Title: Re: Online Package Manager
Post by: balazsszekely on September 05, 2018, 07:27:05 am
Hi anderbelluno,

Quote
We have a new version of REST Dataware.
Many fixes and new features.
Thank you so much.
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: AlexTP on September 05, 2018, 08:38:35 am
win32. Small monitor, OPM window is at the whole screen height. I hover mouse over item which is on the bottom of list. ==> tooltip appears too low, partly of screen.
Title: Re: Online Package Manager
Post by: balazsszekely on September 05, 2018, 09:30:04 am
@Alextp
Quote
win32. Small monitor, OPM window is at the whole screen height. I hover mouse over item which is on the bottom of list. ==> tooltip appears too low, partly of screen.
OK. This is easily reproducible. Fixed in r. 58867. Unfortunately I cannot reproduce the gtk2 issue(cannot scroll tooltip window). Everything works fine on my Linux Mint. I will keep trying with some other Linux distro.
Title: Re: Online Package Manager
Post by: Hansaplast on September 12, 2018, 11:35:46 am
Great package manager!  :) 


Under Cocoa: the buttons at the bottom have some display issues.
Either some buttons are displayed overlapping the list of packages, or the buttons do not show at all.
Moving the mouse over the area where the buttons are supposed to be, makes them (mostly) visible.
(see attached screenshot - using Lazarus 1.9.0 r58960M FPC 3.0.4 x86_64-darwin-cocoa (alpha))


This doesn't prevent me from using it (love it!), as it's just a cosmetic issue. Just thought I should report it.
Title: Re: Online Package Manager
Post by: balazsszekely on September 12, 2018, 11:47:18 am
Great package manager!  :) 

Under Cocoa: the buttons at the bottom have some display issues.
Either some buttons are displayed overlapping the list of packages, or the buttons do not show at all.
Moving the mouse over the area where the buttons are supposed to be, makes them (mostly) visible.
(see attached screenshot - using Lazarus 1.9.0 r58960M FPC 3.0.4 x86_64-darwin-cocoa (alpha))


This doesn't prevent me from using it (love it!), as it's just a cosmetic issue. Just thought I should report it.
Thank you Hansaplast. VST(virtualstringtree) which is used to display the package tree, has some issues under cocoa. It's a known bug, hopefully it will be fixed soon. Thanks again for the feedback.
Title: Re: Online Package Manager
Post by: Hansaplast on September 12, 2018, 11:52:42 am
Great package manager!  :) 

Under Cocoa: the buttons at the bottom have some display issues.
Thank you Hansaplast. VST(virtualstringtree) which is used to display the package tree, has some issues under cocoa. It's a known bug, hopefully it will be fixed soon.


Thanks GetMem! 👍🏻
Title: Re: Online Package Manager
Post by: tk on September 17, 2018, 07:31:26 pm
Who maintains the package list (suspecting http://packages.lazarus-ide.org/packagelist.json) where the path to package json info file and other package info is stored?
Is it possible to change the info stored there for component authors without asking somewhere like I am doing now here?
(maybe I knew before but forgot it...)

I need to change the link for the update json file and I would also like to change some additional info stored there.

I please the maintainer of this file to send me PM or otherwise give me info how to proceed.

Thanks
Title: Re: Online Package Manager
Post by: balazsszekely on September 17, 2018, 08:22:26 pm
Hi tk,

You can only change information inside the json located at your side. If I remember correctly, you're the maintainer of KControl, so the data is here: https://bitbucket.org/tkweb/kcontrols/raw/ed0be8a985eb4030158356155668ac135e8b782b/laz_opm_update.json. You can read more details on external json at the following page: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates

Any other changes must be done by me, but that's not a problem I can do it in no time. Just let me know what exactly are you plan to change. Please leave a comment here or send me a PM. Thank you.
Title: Re: Online Package Manager
Post by: wadman on October 03, 2018, 03:40:12 pm
Hi, GetMem!


Please, update https://github.com/wadman/wthread
Title: Re: Online Package Manager
Post by: balazsszekely on October 03, 2018, 05:13:02 pm
@wadman
Quote
Please, update https://github.com/wadman/wthread
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: anderbelluno on October 12, 2018, 07:46:41 am
Hello sir.
We decided to swap our repository for sourceforge.
I would like to ask, if possible proceed with the update by the link.

https://svn.code.sf.net/p/rest-dataware-components/dataware/trunk

Unfortunately we are not able to maintain two repositories, so we decided to keep only one.
If you can not use SourceForge, please let me know, I will keep GitHub for a short time.

Thank you very much.
Title: Re: Online Package Manager
Post by: balazsszekely on October 12, 2018, 08:02:02 am
Hi anderbelluno,

Quote
Unfortunately we are not able to maintain two repositories, so we decided to keep only one.
If you can not use SourceForge, please let me know, I will keep GitHub for a short time.
I have no problem with sourceforge, however I cannot access the link you provided. (https://svn.code.sf.net/p/rest-dataware-components/dataware/trunk)
Did you release a new version too? Should I update in OPM or just change the homepage link?
Title: Re: Online Package Manager
Post by: anderbelluno on October 12, 2018, 08:30:45 am
This link I sent is the SVN link.
This is the home page
https://sourceforge.net/projects/rest-dataware-componentes/

This link is from the trunk, where we have our commits
https://sourceforge.net/p/rest-dataware-componentes/dataware/HEAD/tree/trunk/

When you can, yes, it has update.

Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on October 12, 2018, 10:37:49 am
Quote
When you can, yes, it has update.
Done. Thanks for the new version.

PS: I also updated the links.

Title: Re: Online Package Manager
Post by: att2 on October 16, 2018, 02:46:45 pm
Hello,
I have the following hardware: Odroid-XU4 (a raspi clone), together with an emmc-card that comes with mate :

Code: Pascal  [Select][+][-]
  1. odroid@odroid:~$ uname -a
  2. Linux odroid 4.14.37-135 #1 SMP PREEMPT Sun Apr 29 23:34:43 -03 2018 armv7l armv7l armv7l GNU/Linux
  3. odroid@odroid:~$ lsb_release -a
  4. No LSB modules are available.
  5. Distributor ID: Ubuntu
  6. Description:    Ubuntu 18.04 LTS
  7. Release:        18.04
  8. Codename:       bionic
  9.  

I am using fpcupdeluxe 1.6.2n to install Lazarus "stable" 1.8.4 and FPC "stable" 3.0.4.
The IDE works.
HOWEVER, the first thing I do is I start to add the onlinepackagemanager. It does compile, but it makes problems: its window is always empty.
The Onlinepackagemanager says "getting data, plz wait", "getting json", etc.etc. then comes up with an EMPTY window instead of with the 147 packages.
I started Lazarus from a terminal and that terminal gives me errors:

----------------------long error lists, sorry
Quote
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=zeosdbo, PkgVersion=7.2
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=zeosdbo, PkgVersion=7.2
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=zmsql, PkgVersion=0.1.20.1
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=zreport, PkgVersion=2.0.11
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=zreport, PkgVersion=2.0.11
.....(snip)
(lazarus:6831): Gdk-CRITICAL **: 14:34:01.219: IA__gdk_draw_pixbuf: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(lazarus:6831): GLib-GObject-CRITICAL **: 14:34:01.220: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
TApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
TApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[ATApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
TApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
TApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
TApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
TApplication.HandleException Access violation
  Stack trace:
  $B6A53E1A
  $002623A0  TDEVICECONTEXTMEMMANAGER__NEWDEVICECONTEXT,  line 766 of ./gtk2/gtk2def.pp
  $000F7544  TGTK2WIDGETSET__NEWDC,  line 5459 of ./gtk2/gtk2widgetset.inc
  $00108968  TGTK2WIDGETSET__SAVEDC,  line 7481 of ./gtk2/gtk2winapi.inc
  $000FE230  TGTK2WIDGETSET__DRAWTEXT,  line 1492 of ./gtk2/gtk2winapi.inc
  $001A3334  DRAWTEXT,  line 215 of ./include/winapi.inc
  $00CBA090  TVIRTUALTREECOLUMNS__DRAWBUTTONTEXT,  line 7565 of ./vst/opkman_VirtualTrees.pas
  $00CBD780  TVIRTUALTREECOLUMNS__PAINTHEADER,  line 8911 of ./vst/opkman_VirtualTrees.pas
  $00CDDE4C  TBASEVIRTUALTREE__PAINT,  line 22347 of ./vst/opkman_VirtualTrees.pas
  $0019B790  TCUSTOMCONTROL__PAINTWINDOW,  line 132 of ./include/customcontrol.inc
  $00183BA0  TWINCONTROL__PAINTHANDLER,  line 4820 of ./include/wincontrol.inc
  $00187D48  TWINCONTROL__WMPAINT,  line 6773 of ./include/wincontrol.inc
  $0019B6BC  TCUSTOMCONTROL__WMPAINT,  line 112 of ./include/customcontrol.inc
  $00CCFB68  TBASEVIRTUALTREE__WMPAINT,  line 16499 of ./vst/opkman_VirtualTrees.pas
  $000438F4
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=Abbrevia, PkgVersion=5.0
TLazPackageLinks.AddOnlineLink: PkgFilename=, PkgName=acs, PkgVersion=3.0
TLazPackageLinks.AddOnlineLink: PkgFilename=https://github.com/Alexey-T/ATBinHex-Lazarus/archive/master.zip, PkgName=ATBinHex-Lazarus-master, PkgVersion=1.0

--------------long error list end

What to do about these errors? Why is the onlinepackagemanager-window empty ?
Title: Re: Online Package Manager
Post by: att2 on October 16, 2018, 04:54:10 pm
And here is a screenshot of the empty onlinepackage manager window, despite it was downloading something...

Title: Re: Online Package Manager
Post by: balazsszekely on October 16, 2018, 10:28:02 pm
Hi att2,

Quote
I am using fpcupdeluxe 1.6.2n to install Lazarus "stable" 1.8.4 and FPC "stable" 3.0.4.
The IDE works.
HOWEVER, the first thing I do is I start to add the onlinepackagemanager. It does compile, but it makes problems: its window is always empty.
The Onlinepackagemanager says "getting data, plz wait", "getting json", etc.etc. then comes up with an EMPTY window instead of with the 147 packages.
I started Lazarus from a terminal and that terminal gives me errors:
What to do about these errors?
It looks like VTV(Virtual Tree View) is misbehaving on arm. OPM depends on VTV because the package structure is displayed in a virtual tree. Unfortunately I don't have a device with arm proc. to debug, so my hands are tied.
Until the bug is fixed, just install the packages manually. You can find the zip files here: https://packages.lazarus-ide.org/

Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 01:03:57 pm
any clue to repair BGRA "FULL" installation? thx
following link is a video capture about what happens (2mins 55secs)
https://drive.google.com/open?id=1wqHDzC0z3Bb5FtnVW4aviClODp_txlVf (https://drive.google.com/open?id=1wqHDzC0z3Bb5FtnVW4aviClODp_txlVf)
Title: Re: Online Package Manager
Post by: balazsszekely on October 17, 2018, 01:36:46 pm
@mercurhyo
Quote
any clue to repair BGRA "FULL" installation? thx
following link is a video capture about what happens (2mins 55secs)
https://drive.google.com/open?id=1wqHDzC0z3Bb5FtnVW4aviClODp_txlVf
Apparently some files are missing(wrong version/bitness) from package BGRAControlsFX. Please try the following:
1. Reinstall package BGRAControlsFX from OPM
2. When OPM offers you to rebuild the IDE, click "No", then go to Lazarus Menu-->Tools-->Configure "Build Lazarus"... and check "Clean All" then Build the IDE from there

Hopefully it will fix the problem.
Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 02:08:13 pm


Hopefully it will fix the problem.

no sorry, this summons around 25 FATALS
1st fatal is "unable to find file fxbutton.pas" something
Title: Re: Online Package Manager
Post by: balazsszekely on October 17, 2018, 02:18:25 pm
Quote
no sorry, this summons around 25 FATALS
1st fatal is "unable to find file fxbutton.pas" something
What about uninstalling BGRAControlsFX? At least temporarily.
Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 02:20:19 pm
At the moment I do not need BGRA inside my projects...
I just found out the problem randomly, and wanted to point it here
1) If you intsall bgrabitmaps, it works
2) if you inslall bgracontrols, it works (installing partially bgrabitmaps)

BUT
IF you then install totally, it HANGS
Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 02:22:14 pm
Quote
no sorry, this summons around 25 FATALS
1st fatal is "unable to find file fxbutton.pas" something
What about uninstalling BGRAControlsFX? At least temporarily.
I did already try that =>
installing bgracontrols ONLY (no FX) requires a partial insall of bgrabitmaps
THEN if you install totally bgrabitmaps the problem is the same, IT HANGS
Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 02:23:42 pm
It is for now useless to me, as I said... I just wanted to point out this problem I randomly found out, in case it bothers other users
Regards
Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 02:25:10 pm
SO at the moment, either you use BGRAbitmaps, either BGRAControls, you can't use both
Title: Re: Online Package Manager
Post by: balazsszekely on October 17, 2018, 02:31:31 pm
It's working fine on my system. I installed both package(BGRABitmaps,  BGRAControls) + BGRAControlsFX. Perhaps the author of BGRAControlsFX(@lainz) has a better idea why the component fails to install at your side. Maybe is related to FPC 3.1.1?
Title: Re: Online Package Manager
Post by: mercurhyo on October 17, 2018, 02:41:41 pm
well I tried also with FPC and LAZ fixes branches (FPC3.2 and Laz 2.0RC1), I had the same troubles
the video I shared above shows the about box, win32/64 IDE32 bits on Windows 7 64bits, and actually TRUNK versions of both FPK and LAZ

I took a look at @lainz packages organization (_master' packages, fpgui, customdrawn derivatives, all that) I really have no clue why BGRABitmap full install and BGRAControls install are mutually exclusive
Title: Re: Online Package Manager
Post by: balazsszekely on October 17, 2018, 02:51:58 pm
Unfortunately I'm out of ideas, but I will run a few tests later with Lazarus/FPC trunk. Hopefully the issue is reproducible at my side too.

PS: I was able to reproduce the bug with Lazarus/FPC trunk. We should wait for the package maintainers(@circular and @lainz) to fix the issue.
Title: Re: Online Package Manager
Post by: mercurhyo on October 18, 2018, 07:50:46 am
Ok thank you very much. I hope you enjoyed my smartass pointing a sorta bug in packages compatibility
Title: Re: Online Package Manager
Post by: balazsszekely on October 18, 2018, 09:42:38 am
@mercurhyo
If it helps I did find a way to install BGRABitmaps, BGRAControls, BGRAControlsFX under FPC > 3.0.4:
1. If installed, uninstall BGRABitmaps, BGRAControls, BGRAControlsFX, delete all folders
2. Install BGRABitmap, rebuild Lazarus, delete the lib folder(it's located at: $(BGRABitmap_Folder)\bgrabitmap\lib
3. Install BGRAControls, rebuild IDE
4. Delete the BGRABitmap lib folder again
5. Install BGRAControlsFX, rebuild IDE

Obviously there is a bug, which make BGRAControls/BGRABitmap mutually exclusive in a higher version of FPC, or at least very difficult to install the packages at the same time. Hopefully the bug will be fixed soon. Since the issue has nothing to do with OPM(the same bug is reproducible with manual install) there is little I can do about it. I really don't like to debug/modify other people packages.

PS: Thank you for the feedback.
Title: Re: Online Package Manager
Post by: mercurhyo on October 18, 2018, 09:44:59 am
all my psys (hehehe  :P ) said "you are welcome" @Getmem
Title: Re: Online Package Manager
Post by: lainz on October 23, 2018, 07:57:01 pm
Hi,

We're fixing bgra issues installing in trunk.

https://forum.lazarus.freepascal.org/index.php/topic,42847.msg300117/topicseen.html#new

FX package is not maintained.

Edit: anyway, I've successfully installed FX package with git sources (trunk-trunk) and with OPM with Lazarus 1.8.4 in Windows.

Remember that FX on Linux requires some libs:
"Under Linux you need to install first freeglut3-dev in the system."

BGRAControls depending if you install everything or not (all lpk's) needs stuff on Linux as well:
"On Linux you need to install libxtst-dev and libgl-dev first."

FX is not tested on Mac.

Edit 2: all controls available in FX are in BGRAControls, except for the 'native button', use just a TButton and you will be fine. FXButton -> TColorSpeedButton. The other are more obvious (progress bar, radial progress bar, etc).

Edit 3: BGRAControls v5.0.2, and maybe circular releases a new BGRABitmap as well with the Linux fix, else download the github repo.
Title: Re: Online Package Manager
Post by: balazsszekely on October 23, 2018, 08:58:05 pm
@lainz

Quote
We're fixing bgra issues installing in trunk.
https://forum.lazarus.freepascal.org/index.php/topic,42847.msg300117/topicseen.html#new
FX package is not maintained.
Thanks for the feedback. I experienced the issues with trunk-trunk on win7/win10, no problem with Lazarus 1.8/FPC 3.0.4. I assume the bug is somehow fpc related(?), but I will run the tests again soon.

Title: Re: Online Package Manager
Post by: garlar27 on November 06, 2018, 09:17:17 pm
Is there a way to go to a previous version of an installed package using OPM?

The other day I updated a package and some things stopped working...
Title: Re: Online Package Manager
Post by: balazsszekely on November 06, 2018, 10:52:20 pm
Quote
Is there a way to go to a previous version of an installed package using OPM?
Unfortunately no. OPM is not a source version control, usually it contains the latest stable packages, or at least this is the goal. Perhaps if you explain the issue in more details we can help.
Title: Re: Online Package Manager
Post by: garlar27 on November 07, 2018, 12:37:34 am
Well, after updating ZEOS DBO something stop working as it used to (the "ATTACH DATABASE" on SQLite 3 seems to stop working).

After the update ZEOS disappeared from the component pallette, so I had to install it again.

Under the "onlinepackagemanager" folder appear 2 ZEOS folders (see attached) one looks like the older version and the one with no version in the folder name is the version 7.2.4. I put this because I don't know if its normal or if it was a download when I was learning to use OPM.

Don't know if this can help. By now I blame ZEOS. The code compiled before the update is working fine, but after updating it stop working.
Title: Re: Online Package Manager
Post by: balazsszekely on November 07, 2018, 06:43:09 am
@garlar27
Quote
Under the "onlinepackagemanager" folder appear 2 ZEOS folders (see attached) one looks like the older version and the one with no version in the folder name is the version 7.2.4. I put this because I don't know if its normal or if it was a download when I was learning to use OPM.
Your findings are correct. Not so long ago I was asked by a Zeos developer to update to version 7.2. For more details please read this: http://forum.lazarus.freepascal.org/index.php/topic,34297.msg293331.html#msg293331. You probably (re)installed Zeos recently, this is why you have two folders in the local repository. The recommended version by the Zeos developers is 7.2

Quote
Don't know if this can help. By now I blame ZEOS. The code compiled before the update is working fine, but after updating it stop working.
Please file a bugreport here: http://zeoslib.sourceforge.net/viewforum.php?f=40. If the issue is fixed, let me know so I can update OPM.

PS: You can use the "Cleanup" button to delete old, unused packages from the local repository.
Title: Re: Online Package Manager
Post by: balazsszekely on November 07, 2018, 07:06:21 am
@all
Latest changes to OPM in Lazarus trunk:
1. High-dpi images thanks to @wp and @Roland Hahn
2. Download, extract and install speed are much faster now
3. Fixed a few leaks

Please test. As always feedbacks are welcomed.

PS: To test the leaks you need to rebuild Lazarus in debug mode(see attached screenshot)
Title: Re: Online Package Manager
Post by: lainz on November 22, 2018, 11:23:27 pm
Hi @GetMem, please you can update BGRAControls to 5.0.3? Thanks!
Title: Re: Online Package Manager
Post by: balazsszekely on November 23, 2018, 06:26:37 am
Hi @GetMem, please you can update BGRAControls to 5.0.3? Thanks!
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: John Landmesser on November 26, 2018, 05:10:36 pm
could  OPM also check the path of an installed package before showing "installed=yes"?!

Reason:
I have some packages without using OPM to install them, but OPM show them up as i installed them with OPM.

Ok, no probs, but would be useful, eventually.

Thanks a lot for this great  tool!!
Title: Re: Online Package Manager
Post by: balazsszekely on November 26, 2018, 05:35:17 pm
could  OPM also check the path of an installed package before showing "installed=yes"?!

Reason:
I have some packages without using OPM to install them, but OPM show them up as i installed them with OPM.

Ok, no probs, but would be useful, eventually.

Thanks a lot for this great  tool!!
OPM basically ask the IDE if a particular package is installed or not, through the PackageEditingInterface. It does not matter if the package was installed via OPM or another method.
Title: Re: Online Package Manager
Post by: antispam88 on November 29, 2018, 12:57:08 pm
Hi,

I searched the forum but didn't found a solution:
How can I uninstall a via OPM installed package (Indy10)? In the version delivered with Lazarus 1.8.4 FPC 3.0.4 there is no uninstall button in opm.
And under Install/Uninstall Packages it isn't listed too.

Thanks
antispam88
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2018, 01:28:32 pm
Hi antispam88,

Quote
I searched the forum but didn't found a solution:
How can I uninstall a via OPM installed package (Indy10)? In the version delivered with Lazarus 1.8.4 FPC 3.0.4 there is no uninstall button in opm.
Unofrtunately you cannot uninstall a package with OPM in Lazarus 1.8.4. It's possible though in Lazarus 2.0 or Trunk.

Quote
And under Install/Uninstall Packages it isn't listed too.
Every installed designtime package is listed in "Install/Uninstall Packages" dialog's left list. Just search for indylaz, if you cannot find it, then it's not installed. If indy was installed via OPM and it's no logner installed, you can press the "Cleanup" button which will remove the package directory from the local repository. You can also deleted it manually by navigating to the Local Repo folder(see attached screenshot).

regards,
GetMem
Title: Re: Online Package Manager
Post by: antispam88 on November 29, 2018, 01:54:10 pm
Thank you for your response!

Ok, in the "Install/Uninstall Packages" it is not listed, but in the OPM it is marked as installed.
Is it possible, that the opm marks a package as installed when it is only loaded, but not installed?

Best regards,
antispam88
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2018, 02:07:59 pm
Quote
Ok, in the "Install/Uninstall Packages" it is not listed, but in the OPM it is marked as installed.
Is it possible, that the opm marks a package as installed when it is only loaded, but not installed?
This is only possible for runtime packages(AFAIK Indy is a designtime package). Of course it can be a bug too, the version shipped with 1.8 is very old. Lot of development has done since then.

PS: As a quick test, can you please close the IDE, rename the Indy folder then check what OPM is telling about the package?
Title: Re: Online Package Manager
Post by: antispam88 on November 29, 2018, 02:12:45 pm
Then it isn't marked as installed
Title: Re: Online Package Manager
Post by: balazsszekely on November 29, 2018, 02:16:30 pm
Quote
Then it isn't marked as installed
OK. It's a bug then. If you can, please check with trunk if the same issue exists, so I can fix it. Thanks.

PS: I did run a quick test(Lazarus trunk).
1. Installed Indy via OPM
2. Uninstall it via "Install/Uninstall Packages"
3. Restart IDE-->Indy is marked as uninstalled in OPM
then
1. Install Indy via OPM again
2. Uninstall Indy via OPM
3. Restart IDE-->Indy is marked as uninstalled in OPM

In trunk everything seems to work fine, but you can run a few test too if you like.
Title: Re: Online Package Manager
Post by: anderbelluno on November 30, 2018, 12:39:55 pm
Hi sir.
We have a new version of REST Dataware. You can update OPM.
Thanks.
Title: Re: Online Package Manager
Post by: garlar27 on November 30, 2018, 01:00:59 pm
Sorry but I had to ask:
Why OPM is not in OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on November 30, 2018, 09:05:54 pm
Hi sir.
We have a new version of REST Dataware. You can update OPM.
Thanks.
Done. Thanks for the new version.

Quote
Sorry but I had to ask:
Why OPM is not in OPM?
OPM is constantly changing, the trunk version of OPM won't compile with Lazarus 1.8 or Lazarus 2.0.
Title: Re: Online Package Manager
Post by: antispam88 on December 02, 2018, 08:01:17 pm
I did tests also with 2.0 RC2 and with trunk 59715. In both versions a package is marked as installed when the package is only loaded via "Open Package File (.lpk)".

Best regards,
antispam88
Title: Re: Online Package Manager
Post by: balazsszekely on December 03, 2018, 08:31:53 am
I did tests also with 2.0 RC2 and with trunk 59715. In both versions a package is marked as installed when the package is only loaded via "Open Package File (.lpk)".
Fixed in r. 59717, please test. Thanks again for the feedback.
Title: Re: Online Package Manager
Post by: Hansaplast on December 03, 2018, 07:41:09 pm
Tip for macOS users with Little Snitch as their firewall;
I got the "unable to resolve packages.lazarus-ide.org" error.

This is caused by Little Snitch since it automatically blocks applications that are not signed.
In the Little Snitch rules one needs to enable/allow this for Lazarus.
Title: Re: Online Package Manager
Post by: RastaManKing on December 03, 2018, 08:17:24 pm
Tip for macOS users with Little Snitch as their firewall;
I got the "unable to resolve packages.lazarus-ide.org" error.

This is caused by Little Snitch since it automatically blocks applications that are not signed.
In the Little Snitch rules one needs to enable/allow this for Lazarus.
this is also true for windows and windows firewall, linux works perfectly out of the box :)
Title: Re: Online Package Manager
Post by: lainz on December 08, 2018, 01:39:53 pm
Hi, I had some problems with Lazarus 2 RC2, first I needed to install the 32 bit cross compiler to install packages with OPM, else any package installation says can't find ppc386, maybe because the project I wish to install packages is configured to 32 bit? (Edit: It makes sense to install the cross compiler).

Well, then I need to install indylaz, and it says Unit not found 'IdAboutVCL'.

Edit: Seems that it fails to extract the 'Core' folder since it's almost empty, I downloaded it manually from the zip file link.
Title: Re: Online Package Manager
Post by: balazsszekely on December 09, 2018, 04:09:59 pm
Sorry for the late response, I was away for a few days.

@Hansaplast
Quote
Tip for macOS users with Little Snitch as their firewall;
I got the "unable to resolve packages.lazarus-ide.org" error.
This is caused by Little Snitch since it automatically blocks applications that are not signed.
In the Little Snitch rules one needs to enable/allow this for Lazarus
Thanks for the feedback.

@lainz
Quote
I had some problems with Lazarus 2 RC2, first I needed to install the 32 bit cross compiler to install packages with OPM, else any package installation says can't find ppc386, maybe because the project I wish to install packages is configured to 32 bit? (Edit: It makes sense to install the cross compiler).
Yes, most likely the packages are configured to 32 bit. OPM only passes the package to the IDE, the IDE decides what compiler to use. I will try to improve this in the future.

Quote
Well, then I need to install indylaz, and it says Unit not found 'IdAboutVCL'.
Edit: Seems that it fails to extract the 'Core' folder since it's almost empty, I downloaded it manually from the zip file link.
I saw this before, when the Indy folder already exists, and you try to install it again, the extraction fails for some reason. Unfortunately I have no idea why.
Title: Re: Online Package Manager
Post by: gerardus on December 13, 2018, 11:30:53 am
Hi GetMem,
First, congrats for the OPM tool, it's a very good thing for Lazarus.
I have two Lazarus installs for working (2.0 RC2 Linux 64 bits and 1.8.4 Windows 64 bits). In both, I use the IBX package and it's version 2.2.0 that OPM has currently.
I see in that same forum 2.3.2 is available.
How does OPM work? Does it depend on you to make the new version available manually?
Best regards,
Gerard.
Title: Re: Online Package Manager
Post by: balazsszekely on December 13, 2018, 01:15:53 pm
Hi gerardus,

Quote
First, congrats for the OPM tool, it's a very good thing for Lazarus.
Thank you.

Quote
I have two Lazarus installs for working (2.0 RC2 Linux 64 bits and 1.8.4 Windows 64 bits). In both, I use the IBX package and it's version 2.2.0 that OPM has currently.
I see in that same forum 2.3.2 is available.
Yes, I can update to 2.3.2, but it has separate files for windows and linux, which is strange: http://www.mwasoftware.co.uk/ibx

Quote
How does OPM work? Does it depend on you to make the new version available manually?
Usually yes, but the package maintener can provide a json file, which will notify the user if a new version of the package is available.
Title: Re: Online Package Manager
Post by: gerardus on December 13, 2018, 06:06:01 pm
Yes, I can update to 2.3.2, but it has separate files for windows and linux, which is strange: http://www.mwasoftware.co.uk/ibx

Strange indeed. A quick comparison of the source code shows no differences.

Usually yes, but the package maintener can provide a json file, which will notify the user if a new version of the package is available.

Ok, thanks. I don't really need the new IBX version, it was basically curiosity. 
Title: Re: Online Package Manager
Post by: lainz on December 16, 2018, 07:32:05 pm
Download is slow, i'm downloading at 200 kb/s when I regularly download between 3 and 4 mb/s from GitHub. Not bad, just noticed it when trying to download Castle Game Engine that's maybe a really big package.

Maybe we can mirror it at github with github downloads in a project, also you can get the number of downloads from each package.

I will investigate the GitHub API if we can build an automatic mirror.

Edit, found this: https://github.com/hypermodules/gh-release-assets

You pass an array of files and all of them are uploaded.

I was building one with Lazarus, but I have no idea on how to make a post request with a zip file on it.
Title: Re: Online Package Manager
Post by: balazsszekely on December 17, 2018, 07:44:01 am
@lainz
Quote
Download is slow, i'm downloading at 200 kb/s when I regularly download between 3 and 4 mb/s from GitHub. Not bad, just noticed it when trying to download Castle Game Engine that's maybe a really big package.
Most likely the download speed is limited by the site administrator(@Marc). Usually a package is a few MB in size, so 200 KB/s should be OK in most cases. Castle Game Engine and RestDataware are the two exception with 126 MB size and 154 MB respectively. Even with +100MB size, a few minutes is more then enough to download a package. Not exceptional but acceptable in my opinion. :)

Quote
Maybe we can mirror it at github with github downloads in a project, also you can get the number of downloads from each package.
I'm not against it, but somebody must maintain the mirror. Unfortunately my time is very limited lately.

Quote
I will investigate the GitHub API if we can build an automatic mirror.
Edit, found this: https://github.com/hypermodules/gh-release-assets
You pass an array of files and all of them are uploaded.
Looks good.

Quote
I was building one with Lazarus, but I have no idea on how to make a post request with a zip file on it.
I use the following code to upload zip files to my server:
Code: Pascal  [Select][+][-]
  1. function PostFile(const AURL, AFieldName, AFileName: String): Boolean;
  2. var
  3.   SS: TStringStream;
  4. begin
  5.   Result := False;
  6.   SS := TStringStream.Create('');
  7.   try
  8.     FHTTPClient := TFPHTTPClient.Create(nil);
  9.     try
  10.       try
  11.         FHttpClient.FileFormPost(AURL, AFieldName, AFileName, SS);
  12.       except
  13.       end;
  14.       Result := SS.DataString = 'zipok';
  15.     finally
  16.       FHTTPClient.Free;
  17.     end;
  18.   finally
  19.     SS.Free;
  20.   end;
  21. end;

Php on server side:
Code: PHP  [Select][+][-]
  1. <?php
  2.   if (isset($_FILES['zip']['name']) && !empty($_FILES['zip']['name']))
  3.   {
  4.     $tmp_name_zip = $_FILES['zip']['tmp_name'];
  5.  
  6.     $location = 'zipfiles/';
  7.     if (move_uploaded_file($tmp_name_zip, $location . $_FILES['zip']['name']))      
  8.       echo 'zipok';
  9.   }
  10. ?>

In your case, assuming that the server accepts files, just check the SS.DataString. It should contain the server response.
Title: Re: Online Package Manager
Post by: lainz on December 18, 2018, 12:32:35 am
Thanks for the code I should try again.
Title: Re: Online Package Manager
Post by: antispam88 on December 23, 2018, 12:44:59 pm
I did tests also with 2.0 RC2 and with trunk 59715. In both versions a package is marked as installed when the package is only loaded via "Open Package File (.lpk)".
Fixed in r. 59717, please test. Thanks again for the feedback.

Sry for my late answer!
I tested it with trunk (r. 59862) and it is now ok.
But in 2.0.0 RC3 it is still marked as installed. Any chance to get a fix for 2.0.0?
Best regards,
antispam88
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2018, 02:24:29 pm
Quote
Sry for my late answer!
No problem.

Quote

I tested it with trunk (r. 59862) and it is now ok.
But in 2.0.0 RC3 it is still marked as installed. Any chance to get a fix for 2.0.0?
Thanks. I will add it to 2.0 RC4.
Title: Re: Online Package Manager
Post by: avra on December 23, 2018, 04:09:24 pm
With FUD (FpcUpDeluxe) generated 32bit Laz 2.0 fixes + FPC 3.2 fixes on Win10 x64, I've found that after installing TDINoteBook from external repo OPM still reports that we have a newer package in external repo. I guess that's because external repo JSON says that it is 0.2.1.0, but after installation it reads from LPK that it is still 0.2.0.0. Similar goes for ColorPalette. External repo reports 0.2.4.0, OPM repo reports 0.2.2.0, and after external repo installation OPM says we have 0.2.3.0 so external repo is still reported as NEW.
Title: Re: Online Package Manager
Post by: avra on December 23, 2018, 04:42:58 pm
Rest Dataware has several packages, but each package outputs PPUs in different dir. Since packages use several same units, we end up with the same PPUs existing in several directories. That bothers Lazarus which reports that PPUs with same name are found at several places. I have attached modified LPK files for these packages changed in a way that they all output PPUs to the same dir, so each PPU exist only once. That way Lazarus will not ask us to ignore PPUs found in different places since they will be all in one place and no duplicates.

I will report here as well: https://github.com/Rest-Dataware/RDW-Componente/issues

EDIT: I just reported to the author...
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2018, 05:04:42 pm
Quote
I guess that's because external repo JSON says that it is 0.2.1.0, but after installation it reads from LPK that it is still 0.2.0.0. Similar goes for ColorPalette. External repo reports 0.2.4.0, OPM repo reports 0.2.2.0, and after external repo installation OPM says we have 0.2.3.0 so external repo is still reported as NEW.
Yes, you're right @avra. OPM reads the version info from the package file, if the external json reports a higher value then the one in the lpk, OPM will display NEW even after you install the package from the developers page. This is confusing for the user, but technically it's not a bug. I can update the lpk files in the central repository if needed, to match the one in the json file. But this should be done by the package maintainer, since I really don't know which is the correct version(lpk vs json).

Quote
Rest Dataware has several packages, but each package outputs PPUs in different dir. Since packages use several same units, we end up with the same PPUs existing in several directories. That bothers Lazarus which reports that PPUs with same name are found at several places. I have attached modified LPK files for these packages changed in a way that they all output PPUs to the same dir, so each PPU exist only once. That way Lazarus will not ask us to ignore PPUs found in different places since they will be all in one place and no duplicates.

I will report here as well: https://github.com/Rest-Dataware/RDW-Componente/issues

EDIT: I just reported to the author...
Thank you.
Title: Re: Online Package Manager
Post by: avra on December 23, 2018, 08:21:27 pm
I looked at OPM's PascalSCADA a little deeper, and I find it odd to see that directories docs and examples are missing. I have understanding for other directories and Delphi left overs, but I think that examples and docs are essential for using PascalSCADA. I found my self downloading original repo archive just to extract these. GetMem, could you please take them back?

I have also faced a problem during compilation of OPM's PascalSCADA packages that Lazarus was creating a copy of all lfm files in output lib directory, so it complained later that there were duplicates and asked if I would ignore that and proceed with compilation. I did and it works, but strange thing is that I still can't understand how could this have happened. Anyone, I would really appreciate hints for understanding it since I would like to have it fixed.
Title: Re: Online Package Manager
Post by: balazsszekely on December 24, 2018, 09:05:34 am
Quote
I looked at OPM's PascalSCADA a little deeper, and I find it odd to see that directories docs and examples are missing. I have understanding for other directories and Delphi left overs, but I think that examples and docs are essential for using PascalSCADA. I found my self downloading original repo archive just to extract these. GetMem, could you please take them back?
From where did you download the repo? I cannot access pascalscada.com.

Quote
I have also faced a problem during compilation of OPM's PascalSCADA packages that Lazarus was creating a copy of all lfm files in output lib directory, so it complained later that there were duplicates and asked if I would ignore that and proceed with compilation. I did and it works, but strange thing is that I still can't understand how could this have happened. Anyone, I would really appreciate hints for understanding it since I would like to have it fixed.
Strange...I did not noticed this behaviour before.
Title: Re: Online Package Manager
Post by: avra on December 24, 2018, 09:11:37 am
From where did you download the repo? I cannot access pascalscada.com.
https://sourceforge.net/projects/pascalscada/files/
Title: Re: Online Package Manager
Post by: balazsszekely on December 25, 2018, 08:29:46 am
@avra
Thanks. Please test again, I updated the central repository.
Title: Re: Online Package Manager
Post by: wp on December 25, 2018, 08:14:56 pm
GetMem, I updated the Industrial package to v0.3
- https://sourceforge.net/projects/lazarus-ccr/files/industrialstuff/industrialstuff-0.3.0.zip/download
- updated json at https://sourceforge.net/projects/lazarus-ccr/files/industrialstuff/OPM/update_industrial.json/download

Please update the Lazarus repository - thank you.

The new version fixes a compilation error on non-Windows systems and adds two new components, TmKnob and TOnOffSwitch.
Title: Re: Online Package Manager
Post by: balazsszekely on December 25, 2018, 08:56:31 pm
@wp
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: wp on December 27, 2018, 06:39:55 pm
Thank you. And here's another one: CalLight v0.3.4
- Download location of zip: https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.4.zip/download
- update json: https://sourceforge.net/projects/lazarus-ccr/files/CalLite/OPM/update_callite.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on December 27, 2018, 08:07:55 pm
@wp
Done. Thanks.
Title: Re: Online Package Manager
Post by: lainz on December 27, 2018, 08:13:22 pm
Download is slow, i'm downloading at 200 kb/s...

Yesterday it was downloading at 1 mbps so it's better now, much faster.
Title: Re: Online Package Manager
Post by: mdbs99 on January 03, 2019, 05:30:09 pm
Hi,
First of all, thanks for the great work on OPM - we should have it years ago.
I've already used OPM and it's worked perfectly, however I have a new requirement to configure a new IDE and I'm not sure if OPM is the easy way to do what I need:
My team uses some libs and each one has an specific version. Sometimes this version is trunk+rev.X.X.X, sometimes just last stable version.
My question is: as OPM do not configure SVN/Git local information for each lib, which is the best way for me to configure my IDE using different versions that were not registered on OPM?
For example: We use ZEOS 7.2-patches, which is not available in OPM. How can we use this version, to put into OPM to warning us when they update this repository?

The ENV that I need to do that is Lazarus 1.9.0 r58537M FPC 3.1.1 i386-win32-win32/win64
Title: Re: Online Package Manager
Post by: balazsszekely on January 03, 2019, 09:38:44 pm
Hi mdbs99,

Thanks for the feedback. I'm afraid what are you looking for is not possible. OPM only supports the latest stable version of a particular package. There are a few exceptions from the rule, when the release cycle is slow for example, I do add svn version of a package from time to time.   

PS: You can create private repositories if you like, for more information please read the following page: http://wiki.freepascal.org/Online_Package_Manager#Create_a_private_repository
But I guess is not exactly what are you looking for.
Title: Re: Online Package Manager
Post by: mdbs99 on January 04, 2019, 02:05:11 am
Hi GetMem,

If I understood well, I could have my own repositories (zip files) made by us (team), getting the sources from original repositories.
The private repository for OPM could be just a folder in our network?
Title: Re: Online Package Manager
Post by: balazsszekely on January 04, 2019, 05:34:40 am
@mdbs99
Quote
If I understood well, I could have my own repositories (zip files) made by us (team), getting the sources from original repositories.
Yes.

Quote
The private repository for OPM could be just a folder in our network?
You have to set up a local http server, then copy all the zip files + the "packagelist.json" in a single directory. Both the zip files and the "packagelist.json" is created automatically by OPM.
Title: Re: Online Package Manager
Post by: mdbs99 on January 04, 2019, 12:16:06 pm
Ok @GetMem, thanks!
Title: Re: Online Package Manager
Post by: minesadorada on January 07, 2019, 11:51:49 am
Hi @GetMem,
I just tested my (written in 2014) "Example Non-Visual component" in Lazarus 2.x FPC 3.x and it still compiles and installs OK, so can we add it to OPM please?
Zip files and json are in https://svn.code.sf.net/p/lazarus-ccr/svn/components/examplecomponent/latest_stable/updates/
Wiki page: http://wiki.lazarus.freepascal.org/Lazarus_Nongraphical_Visual_Component_Example_Code
Title: Re: Online Package Manager
Post by: mdbs99 on January 07, 2019, 12:05:15 pm
I'm thinking if it is possible to point to directly to, for example, a Github project. When the author release a new version, it exists as a .zip file. The only thing that is missing is the .json on those repositories, if I understood right
So, each project author that would like to show its project on OPM could just put the .json file in their repository. Then we can just point to there and if OPM find that file, it will be included automatically.

What do you think?
Title: Re: Online Package Manager
Post by: balazsszekely on January 07, 2019, 01:45:15 pm
@minesadorada
Quote
I just tested my (written in 2014) "Example Non-Visual component" in Lazarus 2.x FPC 3.x and it still compiles and installs OK, so can we add it to OPM please?
Zip files and json are in https://svn.code.sf.net/p/lazarus-ccr/svn/components/examplecomponent/latest_stable/updates/
Wiki page: http://wiki.lazarus.freepascal.org/Lazarus_Nongraphical_Visual_Component_Example_Cod|
Done. Thanks for the new package.


@mdbs99
Quote
I'm thinking if it is possible to point to directly to, for example, a Github project. When the author release a new version, it exists as a .zip file. The only thing that is missing is the .json on those repositories, if I understood right
So, each project author that would like to show its project on OPM could just put the .json file in their repository. Then we can just point to there and if OPM find that file, it will be included automatically.
This feature is already implemented. The steps are described here: http://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates
For more details please check attached screenshot. 
Title: Re: Online Package Manager
Post by: jujibo on January 09, 2019, 05:02:15 pm
Hi @GetMem

Jujiboutils package version in Online Package Manager is 2.1.0 (released in 2014). There is a new version (2.3.0) since 2017. Is possible to update OPM with the new version?  https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/ (https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/)

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on January 10, 2019, 06:24:09 am
Hi jujibo,
Quote
Jujiboutils package version in Online Package Manager is 2.1.0 (released in 2014). There is a new version (2.3.0) since 2017. Is possible to update OPM with the new version?  https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/
Thanks for the feedback. I updated the central repository. When you release a new version please let me know, so I can update in OPM.
Title: Re: Online Package Manager
Post by: jujibo on January 10, 2019, 09:51:56 am
Hi jujibo,
Quote
Jujiboutils package version in Online Package Manager is 2.1.0 (released in 2014). There is a new version (2.3.0) since 2017. Is possible to update OPM with the new version?  https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/
Thanks for the feedback. I updated the central repository. When you release a new version please let me know, so I can update in OPM.

I'll do it. Thank you!
Title: Re: Online Package Manager
Post by: af0815 on January 10, 2019, 09:11:48 pm
Today building of Lazarus (fpc fixes 32/ Lazarus fixes 2.0 - win32 - with fpcupdeluxe) with OPM stops with the following error
C:\Data\lazdev\fixes32_fixes20\lazarus\components\virtualtreeview\VirtualTrees.pas(772,19) Error: (5042) No matching implementation for interface method "SetData(const tagFORMATETC;var TagSTGMEDIUM;LongBool):LongInt; StdCall;" found
C:\Data\lazdev\fixes32_fixes20\lazarus\components\virtualtreeview\VirtualTrees.pas(4022,1) Fatal: (10026) There were 1 errors compiling module, stopping

Build Lazarus without OPM works. Rebuild of Lazarus with OPM fails too.

Any hint ?
Title: Re: Online Package Manager
Post by: balazsszekely on January 10, 2019, 09:18:39 pm
Hi Andreas,

It's most likely related to: https://bugs.freepascal.org/view.php?id=34804, but let's wait for @wp because I don't know any details about the issue.
Title: Re: Online Package Manager
Post by: af0815 on January 10, 2019, 09:31:40 pm
Ok, i have found the issue:

marco  07.01.2019 11:18:39
--- Merging r40745 into '.':
U    packages/winunits-base/src/activex.pp
--- Recording mergeinfo for merge of r40745 into '.':
 U   .

# revisions: 40745
-----------
The interfacedefinition in FPC have changed, VTV is impacted by this. You have to change the second const into var (Parameter) and it works for me now.

Edit: It is fixed in laz-trunk but not backported to fixes2.0 yet.

Edit2:
in the bugreport 34804 wp writes
Quote
Will not be backported to Laz 2.0 which comes with fpc 3.0.4 and thus is not affected.

upcoming Laz 2.0 is affected if you use the fpc-fixes 3.2. Actual you cannot use OPM/VTV with fpc-fixes 3.2
Title: Re: Online Package Manager
Post by: balazsszekely on January 11, 2019, 06:26:42 am
@af0815
Quote
in the bugreport 34804 wp writes
Quote
Will not be backported to Laz 2.0 which comes with fpc 3.0.4 and thus is not affected.
upcoming Laz 2.0 is affected if you use the fpc-fixes 3.2. Actual you cannot use OPM/VTV with fpc-fixes 3.2
It's already in the merge list for RC4(see r60024): http://wiki.freepascal.org/Lazarus_2.0_fixes_branch#Submitted_by_developer_.2F_committer.2C_tested.2C_waiting_to_be_merged
Title: Re: Online Package Manager
Post by: wp on January 11, 2019, 09:19:33 am
The reason why I did not want it to be merged at first was that the fix affects all widgetsets, and I can test only a few of them. Your argument that you cannot use fpc-fixes 3.2, however, is valid and therefore I put it on the merge list yesterday. But please, anybody: absolutely report when Laz does not build on any widgetset.
Title: Re: Online Package Manager
Post by: balazsszekely on January 11, 2019, 09:34:57 am
In my opinion your changes are safe. I don't see why different widgetset would behave differently in this context. More over you did it with ifdef, so Lazarus 2.0 with FPC 3.0.4 is not effected.
Title: Re: Online Package Manager
Post by: wp on January 11, 2019, 09:47:10 am
In my opinion your changes are safe.
Normally yes, but there are so many stupid errors, and I only believe that it is safe when the changed version really does compile.

I don't see why different widgetset would behave differently in this context. More over you did it with ifdef, so Lazarus 2.0 with FPC 3.0.4 is not effected.
Yes, essentially it is a Windows-only change related to some ActiveX thing. But the other widgetsets use some faked ActiveX unit. Since the call from VTV to that function must be valid in all widgetsets the faked ActiveX routines must be changed as well. I am not absolutely sure that all the changes were necessary because I have the feeling that some of the other-widgetset code is no longer used. And as I said - there are so many stupid errors...
Title: Re: Online Package Manager
Post by: af0815 on January 11, 2019, 04:54:24 pm
It is an changed Interfacedeclaration, not an simple function change , so all widgetsets are affect, if they use the interface. If they have an fake ActiveX, using this Interface, it will also rise an error on a (clean) recompile.

So i think - my point of view - it will be very fast raised :-) or not, if it is windows only.

BTW: VTV is on Version 7.1. And Lazarus have (with OPM) V5 and IMHO trouble to use V4, if you (want) to use OPM. How will it work if somebody create VTV V6 or VTV V7 ? Or is this a question only for the VTV maintainer?
Title: Re: Online Package Manager
Post by: wp on January 11, 2019, 05:35:24 pm
BTW: VTV is on Version 7.1. And Lazarus have (with OPM) V5 and IMHO trouble to use V4, if you (want) to use OPM. How will it work if somebody create VTV V6 or VTV V7 ? Or is this a question only for the VTV maintainer?
GetMem, looking back I think it was a wise decision in your first version of OPM in which you have renamed everything of VTV to a lazarus-only version, and I who was among those who urged you to use the standard VTV was wrong... Having a Lazarus-only VTV would have solved all these issues, it would also have solved the ugly compatibility merging issues of our version to the official repo.
Title: Re: Online Package Manager
Post by: balazsszekely on January 11, 2019, 06:22:41 pm
af0815
Quote
t is an changed Interfacedeclaration, not an simple function change , so all widgetsets are affect, if they use the interface. If they have an fake ActiveX, using this Interface, it will also rise an error on a (clean) recompile.
So i think - my point of view - it will be very fast raised :-) or not, if it is windows only.
Of course it will be raised, but @wp fixed for every widgetset supported by VTV. More over he did it with ifdef, so Lazarus 2.0/FPC 3.0.4(the latest official release) won't be effected. Other issues with newer version of FPC(if any) can be fixed later in trunk.

Quote
BTW: VTV is on Version 7.1. And Lazarus have (with OPM) V5 and IMHO trouble to use V4, if you (want) to use OPM. How will it work if somebody create VTV V6 or VTV V7 ? Or is this a question only for the VTV maintainer?
VTV5 is the highest version which will compile with FPC 3.0.4. V6+ needs some advanced generic features. More over, according to the package maintainer(@luiz) the large part of the new features in V6 is windows specific. So you don't gain anything by using V6 unless of course you're under windows. The real issue is that you cannot use other version then v5 while OPM is installed. 

@wp
Quote
looking back I think it was a wise decision in your first version of OPM in which you have renamed everything of VTV to a lazarus-only version, and I who was among those who urged you to use the standard VTV was wrong... Having a Lazarus-only VTV would have solved all these issues, it would also have solved the ugly compatibility merging issues of our version to the official repo.
In theory we still can go back to that configuration, it shouldn't take more then 30 minutes to make the necessary adjustments. The real issue is to convince some core developers to go back to the previous stage. It took 1.5 years until VTV was allowed to trunk, now it would be really strange to suggest to delete it.  :) Anyways I would choose v5 this time, since you and others added cool new features like support for: high dpi, arm processors, cocoa/qt5 widgetsets, etc.
Title: Re: Online Package Manager
Post by: wp on January 11, 2019, 07:30:22 pm
It took 1.5 years until VTV was allowed to trunk, now it would be really strange to suggest to delete it.
Sometimes decisions turn out to be wrong, that's life. Do you want to contact the other devs, or should I do?
Title: Re: Online Package Manager
Post by: balazsszekely on January 11, 2019, 07:33:16 pm
Do you want to contact the other devs, or should I do?
Please do, but I think is too late for 2.0 anyways.
Title: Re: Online Package Manager
Post by: wp on January 14, 2019, 12:01:29 pm
I don't know if this has been mentioned before, or if something is wrong on my side. But when I use OPM to install a package, such as ATBinHex, on Laz-trunk / fpc-3.0.4 / 64 bit on Win10 the download and compilation work find, but the IDE is not rebuilt. Going to "Package" > "Install/unistall packages" I see the package in the right list "Available for installation".

When I do the same with Laz-trunk / fpc-3.0.4 / 32 bit everything is ok.
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2019, 12:16:04 pm
After a quick test, the install process works fine here(64 bit Lazarus trunk/FPC 3.0.4). The IDE is rebuilded.
Title: Re: Online Package Manager
Post by: wp on January 14, 2019, 12:39:26 pm
Strange. Or is there an option to turn automatic installation off although I did not see it?
Title: Re: Online Package Manager
Post by: guest63552 on January 14, 2019, 12:49:04 pm
Is it possible to add notification that zip file exist for each shown package?

That is useful when delete/reinstall Lazarus completely, checking it briefly in order to install it from saved local archive, instead to DL it again.
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2019, 12:52:34 pm
@wp
No, you cannot turn off installation, however you can turn off the re-download of a package. Please see: Options-->Always force download and extract. If the force download is off, and you have an older version of that package in the local repository, things might go wrong.
Anyways can you please open opkman_mainfrm, and put a breakpoint at line 890(tbInstall click) and see where the installation goes wrong. It shouldn't take more then 1-2 minutes, I would do it myself but there is no error at my side.

@po123
Just uncheck the "Always force download and extract", if the zip is available in the local repository, OPM should install it from there.
As for a visual feedback, please check attached image. You can see the following text:
  Repository -->the package is available in the central repository
  Downloaded --> the package is already downloaded, is available in the local repository
  Extracted-->self explanatory
  Installed-->self explanatory
  Up to date --> the version installed is the same as the one in the central repository or the developers webpage(if available)
Title: Re: Online Package Manager
Post by: guest63552 on January 14, 2019, 01:02:34 pm
@po123
Just uncheck the "Always force download and extract", if the zip is available in the local repository, OPM should install it from there.

Yes, I know, but there is many of zip files and each package must be checked individually in order to install it. There is no visual indication in VTV that zip for specific package exists.
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2019, 01:23:42 pm
@po123
I updated my previous post.
Title: Re: Online Package Manager
Post by: guest63552 on January 14, 2019, 01:40:03 pm
I updated my previous post.

Thank you, I see.

Only problem is that VTV tree need to be totally expanded, which yields 150*10 (at least ) nodes. Since VTV is quite versatile, I would suggest background color for collapsed tree nodes and each status...

In the mean time, this should be enough, thank you once again for pointing out.
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2019, 01:46:55 pm
@po123
Believe it or not initially was with different colors, but then people started to complain about to much color and "my eyes hurts", more over with some dark theme the text is not visible. Now the only colored text is the "up to date" message.
Title: Re: Online Package Manager
Post by: guest63552 on January 14, 2019, 01:56:13 pm
New option then would be perfect solution for any taste and need...

I'm not a lover of too colored GUI either, but in this case that would help quite a bit. Any discrete difference in BG colors could be even  fine for long term usage...

Title: Re: Online Package Manager
Post by: Xor-el on January 14, 2019, 06:28:49 pm
@GetMem, would it be possible to add something like supported platforms (similar to supported widgetset) in OPM?
This would contain
Windows
Mac OS
Linux
Raspberry PI
Android

to mention but a few.

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2019, 06:43:01 pm
@Xor-el
Yes I can, but the problem is the accuracy of the information. For example you keep your packages up to date, frequently submitting new versions, but others don't do that. By default, I can add for each package a few supported platforms like: windows, linux, osx which is reasonable, but then if somebody finds that a particular package fails under osx for example, it looks bad for OPM.
Title: Re: Online Package Manager
Post by: Xor-el on January 14, 2019, 07:05:43 pm
@Xor-el
Yes I can, but the problem is the accuracy of the information. For example you keep your packages up to date, frequently submitting new versions, but others don't do that. By default, I can add for each package a few supported platforms like: windows, linux, osx which is reasonable, but then if somebody finds that a particular package fails under osx for example, it looks bad for OPM.

Ok, I do understand, but here is a suggestion, if the developer of the package provides this information, we add it else we leave it empty.
What do you think?
Title: Re: Online Package Manager
Post by: af0815 on January 14, 2019, 07:11:12 pm
I think, if this information is a part of the package data and is maintainex by the ppackage developer it will possible for OPM. IMHO OPM can only distribute information, mainained in the package.

My 2 cents
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2019, 07:23:48 pm
@Xor-el
Quote
Ok, I do understand, but here is a suggestion, if the developer of the package provides this information, we add it else we leave it empty.
What do you think?
It's sounds reasonable, but I already see questions for empty rows like: "This package does not run on any platform?, @getmem did you forget to add the information?"  :D 

@af0815
Quote
I think, if this information is a part of the package data and is maintainex by the ppackage developer it will possible for OPM. IMHO OPM can only distribute information, mainained in the package.
I strongly agree with this one.
Title: Re: Online Package Manager
Post by: Xor-el on January 14, 2019, 07:35:00 pm
@Xor-el
Quote
Ok, I do understand, but here is a suggestion, if the developer of the package provides this information, we add it else we leave it empty.
What do you think?
It's sounds reasonable, but I already see questions for empty rows like: "This package does not run on any platform?, @getmem did you forget to add the information?"  :D 
:D :D :D
Title: Re: Online Package Manager
Post by: wp on January 15, 2019, 11:35:40 pm
@GetMem: I have a new version of tvplanit, v1.4.0, mainly bug fixes. The download link is https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.4.0.zip/download, the json file as usual at https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/OPM/update_tvplanit.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on January 16, 2019, 06:34:50 am
@wp
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: balazsszekely on January 19, 2019, 02:40:43 pm
@wp
Quote
I don't know if this has been mentioned before, or if something is wrong on my side. But when I use OPM to install a package, such as ATBinHex, on Laz-trunk / fpc-3.0.4 / 64 bit on Win10 the download and compilation work find, but the IDE is not rebuilt. Going to "Package" > "Install/unistall packages" I see the package in the right list "Available for installation".
When I do the same with Laz-trunk / fpc-3.0.4 / 32 bit everything is ok.
I fixed the bug in r. 60106. Please test.
Title: Re: Online Package Manager
Post by: wp on January 19, 2019, 06:29:58 pm
Thank you.
Title: Re: Online Package Manager
Post by: Josh on January 22, 2019, 01:13:00 am
Installed a fresh install of latest Lazarus and FPC Trunk rev60161 usinf fpcupdeluxe.

OPM does not install, when I click to instal it, I get error
Broken Dependency
One or more required packages was not found. See package graph.
which highlights laz.virtualtreeview_package.


The package is not listed in available packages.

This is on Cocoa X64
Title: Re: Online Package Manager
Post by: wp on January 22, 2019, 01:34:06 am
This is a consequence of the new way how virtual treeview is handled by Lazarus trunk now. VTV now is in a package "laz.virtualtreeview_package", and all files and registered classes are renamed to distinguish them from other versions out there. This way people can install, for example, VirtualTreeView4 in addition to the one incorporated in Lazarus (https://forum.lazarus.freepascal.org/index.php/topic,43665.msg306524.html#msg306524). The "Lazarus-VTV" components are found in palette "LazControls".

The fact that the old VTV package which which the trunk IDE was built is no longer available results in the shown message.

Until we have a better solution you can use this work-around:

[EDIT]
Updating a trunk installation from a revision prior to 60132 has become easier after r60156: After updating from svn just issue the command "make bigide".
Title: Re: Online Package Manager
Post by: Josh on January 22, 2019, 11:05:50 am
@wp

Excellent, thanks for that info, worked perfectly.

:) :)
Title: Re: Online Package Manager
Post by: tk on February 06, 2019, 12:58:18 pm
Hello Getmem,
as I just found out the JSON file URL modifies with each commit on Bitbucket.
For example:
Kcontrols 1.7.2 has https://bitbucket.org/tomkrysl/kcontrols/raw/7049a840a94fbd9178054b712ce49d72d4d73777/laz_opm_update.json
Kcontrols 1.7.3 has https://bitbucket.org/tomkrysl/kcontrols/raw/09e372df278b861870745c133b546a2fe6a13441/laz_opm_update.json
This is a problem because the OPM points to the old version of JSON after each file commit.
Maybe I've overlooked sth but is there some automated solution for Bitbucket? Or what do you recommend?

EDIT:
Ok found a solution myself, although I could not find any relevant documentation on atlassian site.
This should work better and hopefully forever:
https://bitbucket.org/tomkrysl/kcontrols/raw/default/laz_opm_update.json
Please modify that in OPM json file.

Thank you

Title: Re: Online Package Manager
Post by: balazsszekely on February 06, 2019, 01:22:59 pm
Hi tk,

The URL should stay the same, otherwise OPM cannot parse the json file. The only thing you should change after each release is the: "Version" and "DownloadZipURL". Can you please put the json file to the following URL: https://bitbucket.org/tomkrysl/kcontrols/get/OPM/laz_opm_update.json or some similar location where is not overwritten?

regards,
GetMem
Title: Re: Online Package Manager
Post by: tk on February 06, 2019, 02:22:12 pm
Hi Getmem
please read the edit in my post.
https://bitbucket.org/tomkrysl/kcontrols/raw/default/laz_opm_update.json
This should work, pls. modify. Thank you
Title: Re: Online Package Manager
Post by: balazsszekely on February 06, 2019, 02:50:26 pm
@tk
Thank you. I updated the central repository.

PS: I have a small request. Can you please update the version info from 1.7.2.0 to 1.7.3.0 in the lpk files(kcontrolsbase, kcontrolslaz)? After the package is downloaded, OPM reads the version from the lpk files and shows 1.7.2.0.
Title: Re: Online Package Manager
Post by: tk on February 06, 2019, 05:07:13 pm
Can you please update the version info from 1.7.2.0 to 1.7.3.0 in the lpk files(kcontrolsbase, kcontrolslaz)? After the package is downloaded, OPM reads the version from the lpk files and shows 1.7.2.0.

Ah sorry, forgot this...
Now updated, even added this to my json file:
Code: [Select]
 
"ForceNotify" : true,
"InternalVersion" : 1,

But the repo version still 1.7.2. Why?
How can I force the repo version to update?
Btw. Do you plan some automation of this? I mean so that I am able to modify everything myself, through some maintenance login.
Title: Re: Online Package Manager
Post by: balazsszekely on February 06, 2019, 07:33:37 pm
Quote
But the repo version still 1.7.2. Why?
I have to update the central repository manually(I just did it).
 
Quote
How can I force the repo version to update?
Unfortunately you cannot update the main repository, not yet at least.

Quote
Btw. Do you plan some automation of this? I mean so that I am able to modify everything myself, through some maintenance login.
It's on the todo list. I wasn't able to implement it, mainly because of the lack of time.
Title: Re: Online Package Manager
Post by: RDL on February 07, 2019, 07:40:48 am
GetMem
Please update in OPM indy10
last version from svn r5494
thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on February 07, 2019, 08:57:39 am
GetMem
Please update in OPM indy10
last version from svn r5494
thanks.
Done. I also fixed the extraction issue. You can overwrite an already installed indy instance. Until now, a few read-only jpg's prevented the extraction/overwrite. Please test.
Title: Re: Online Package Manager
Post by: avra on February 11, 2019, 12:07:48 pm
OpenDocument package can not be compiled with FPC 3.2 fixes. I have succeeded after applying CT patch, which is to open odf_types.pas and replace all instances of ": T)" with ": TElementType)" (all without quotes).

I have reported issue to the author:
https://github.com/dgaspary/fpOdf/issues/1

You could also update home page of OpenDocument with https://github.com/dgaspary/fpOdf, and rename package name and lpk file name as in original.
Title: Re: Online Package Manager
Post by: balazsszekely on February 11, 2019, 12:59:42 pm
Thanks @avra. I will update the package after the bug is fixed. I will also rename the package and change the URL.
Title: Re: Online Package Manager
Post by: avra on February 11, 2019, 01:32:16 pm
ACS conflicts with pl_Win_DirectX because they use different versions of the same unit Direct3D9.pas. I looked at trunk ACS and saw that it doesn't have Direct3D9 unit, but joy melted after seeing that it now uses newly introduced package laz_directx which calls it now, and unit name remained the same - so nothing changed much (laz_directx package is not on author's site, but he probably uses one from https://github.com/cutec-chris/directx). This means that even if ACS is updated and new laz_directx package gets into OPM, we will still have a unit name conflict.

Solutions:

1) I have fixed trunk ACS by changing package requirements from laz_directx to pl_Win_DirectX, and 2 demos I tested compile, but I do not think this is ideal as it would be needed on each ACS update.

2) I can also contact the author and ask if he can rename the unit, or even better introduce name spaces into all his units. This looks more promising.

3) If anyone has a better idea, I am all ears...
Title: Re: Online Package Manager
Post by: avra on February 11, 2019, 03:16:10 pm
Same story...

lazbarcodes conflicts with pl_APE because of the same name unit uRender.pas.

It would be ideal if uRender unit is renamed in lazbarcodes package. Who maintains lazbarcodes? I see it belongs to CCR so maybe author is reading this? If not then I will report in bugtracker...
Title: Re: Online Package Manager
Post by: avra on February 11, 2019, 03:20:05 pm
I will update the package after the bug is fixed. I will also rename the package and change the URL.
I was just notified by the author that patch has been applied.
Title: Re: Online Package Manager
Post by: wp on February 11, 2019, 04:23:06 pm
New version 1.0.3 of LazBarCodes for OPM at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-1.0.3.zip/download, the update-json is at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/OPM/update_lazbarcodes.json/download.

In the new version, internally used units (among them urender) have been renamed to avoid naming conflict with PL_APE ("lbc_" prefix instead of "u"). The main unit is still called "ubarcodes.pas" and this, hopefully, avoids breakage of existing user code.
Title: Re: Online Package Manager
Post by: balazsszekely on February 11, 2019, 05:25:48 pm
I will update the package after the bug is fixed. I will also rename the package and change the URL.
I was just notified by the author that patch has been applied.
I downloaded the package from the author's webpage(https://github.com/dgaspary/fpOdf), but I cannot compile. It has "Stax" in the dependency list. What is Stax?
Edit: OK I found it, but fpodf still fails on Lazarus Trunk/FPC 3.0.4(see attached image). I can fix it(lazfileutils to uses), but it would be better if the package maintainer does it in the official repository.

New version 1.0.3 of LazBarCodes for OPM at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-1.0.3.zip/download, the update-json is at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/OPM/update_lazbarcodes.json/download.

In the new version, internally used units (among them urender) have been renamed to avoid naming conflict with PL_APE ("lbc_" prefix instead of "u"). The main unit is still called "ubarcodes.pas" and this, hopefully, avoids breakage of existing user code.
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: avra on February 12, 2019, 08:59:43 am
New version 1.0.3 of LazBarCodes for OPM
...
In the new version, internally used units (among them urender) have been renamed to avoid naming conflict with PL_APE ("lbc_" prefix instead of "u"). The main unit is still called "ubarcodes.pas" and this, hopefully, avoids breakage of existing user code.
Wonderful. Thank you!

I downloaded the package from the author's webpage(https://github.com/dgaspary/fpOdf), but I cannot compile. It has "Stax" in the dependency list. What is Stax?
Edit: OK I found it, but fpodf still fails on Lazarus Trunk/FPC 3.0.4(see attached image). I can fix it(lazfileutils to uses), but it would be better if the package maintainer does it in the official repository.
My fault. Sorry for the confusion. At first look at the repo I didn't notice mentioned changes so that was unexpected. I have reported the issue to the author: https://github.com/dgaspary/fpOdf/issues/2.
Title: Re: Online Package Manager
Post by: avra on February 12, 2019, 04:05:32 pm
I have reported the issue to the author: https://github.com/dgaspary/fpOdf/issues/2.
I have fixed HelloWorld ODF example for Windows, and reported it as another issue. Now everything compiles and HelloWorld demo ODF file is created and tested with LibreOffice. Author has just informed me that all patches have been applied.
Title: Re: Online Package Manager
Post by: balazsszekely on February 12, 2019, 08:39:25 pm
I have fixed HelloWorld ODF example for Windows, and reported it as another issue. Now everything compiles and HelloWorld demo ODF file is created and tested with LibreOffice. Author has just informed me that all patches have been applied.
Thanks avra. I updated the central repository. Both the package and the demo project works fine.
Title: Re: Online Package Manager
Post by: avra on February 13, 2019, 08:16:50 am
I updated the central repository. Both the package and the demo project works fine.
Great, thanks!  ;)
Title: Re: Online Package Manager
Post by: wp on February 19, 2019, 06:09:53 pm
GetMem, could you add the new version 1.0.4 of LazBarCodes to the repo? Now the barcodes have a method for saving to graphic file:
- download: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-1.0.4.zip/download
- json file: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/OPM/update_lazbarcodes.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on February 19, 2019, 06:40:07 pm
GetMem, could you add the new version 1.0.4 of LazBarCodes to the repo? Now the barcodes have a method for saving to graphic file:
- download: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-1.0.4.zip/download
- json file: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/OPM/update_lazbarcodes.json/download
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: RDL on February 26, 2019, 07:04:06 am
GetMem
Could not install FPSpreadsheet via OPM.
I get the error "error reading data from socket"
Title: Re: Online Package Manager
Post by: balazsszekely on February 26, 2019, 07:08:36 am
Hi RDL,

Quote
Could not install FPSpreadsheet via OPM.
I get the error "error reading data from socket"
Just tested, works fine here. Firewall, AV? Maybe slow connection. You can try increase the connection timeout(OPM-->Options-->General).
Title: Re: Online Package Manager
Post by: avra on February 27, 2019, 07:14:37 pm
These OPM packages fail to compile with 32bit Lazarus 2.0 fixes and FPC 3.0 fixes on Win10x64:

CodeSigningHelperGitLab trunk version compiles, OPM version doesn't. OPM version should be updated.
KaajControlsNeeds fpgui_toolkit package which is not in OPM. Strange.
LazAutoUpdateAfter adding LCLPlatformDef to uses section of VersionSupport.pas compilation is fine. Fix reported to the author.
LazProfilerProblem with Generics. Reported to the author.
OpenWeatherMapCompilation fixed and reported to author. Demos still return response code 401 which seams to be an authentication issue.
PoweredByCompilation fails on Lazarus 2.0+. Fixed and reported https://bugs.freepascal.org/view.php?id=35160
Title: Re: Online Package Manager
Post by: RDL on February 28, 2019, 05:18:22 am
[GetMem]
av not installed. Other components succefull installers.

error gif
https://s2.gifyu.com/images/65465.gif
Title: Re: Online Package Manager
Post by: balazsszekely on February 28, 2019, 07:55:11 am
@avra
First of all, thanks for checking the packages regularly. It helps me a lot.

CodeSigningHelperFixed.
KaajControlsUnfortunately fpgui has two package with the same, one for windows one for linux. Since each package name must be unique in OPM, fpgui_tools cannot be installed automatically. This is the reason why I removed in the past,  I also removed KaajControls now, if somebody finds a workaround I can add it back.
LazAutoUpdateFixed.
LazProfilerAlthough it would be nice if the package compiles with Lazarus 2.0, the author explicitly stated that the package only works with FPC/Lazarus trunk(see attached screenshot). I see no problem here.
OpenWeatherMapFixed.
PoweredByFixed.


If would be nice if somebody could check the packages on Linux too(much more issues there).




[GetMem]
av not installed. Other components succefull installers.

error gif
https://s2.gifyu.com/images/65465.gif
Unfortunately I'm out of ideas. Can somebody else test if the package can be installed or not?
Title: Re: Online Package Manager
Post by: avra on February 28, 2019, 11:13:14 am
thanks for checking the packages regularly. It helps me a lot.
You're most welcome and thank you for OPM. OPM and FpcUpD have really made some things much easier then they used to be. With them, docking IDE and embedded form designer, Lazarus can finally fully shine and fight for the place it deserves.
Title: Re: Online Package Manager
Post by: wp on February 28, 2019, 12:18:09 pm
Could not install FPSpreadsheet via OPM.
I get the error "error reading data from socket"
This does not seem to be an error message from fpspreadsheet. Which Lazarus version are you having? From your video I see that the error is occuring in the download phase at the end of the laz_fpspreadsheet package - there are more packages to follow. There seems to be a problem with the connection to the repository. Install again, or download separately or download from the primary site https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.10.1.zip/download (which is the same version), then install manually.
Title: Re: Online Package Manager
Post by: RDL on March 05, 2019, 05:17:54 am
GetMem, wp
Sorry. This was my Kerio firewall.
see attachment
Title: Re: Online Package Manager
Post by: Windsurfer on March 10, 2019, 04:30:42 pm
I nstalling with Fpcupdeluxe to Windows 10, I had the following error messages.
If I commented out the references to llProgress it compiled.

(3104) Compiling fppkg_optionsfrm.pas
C:\Lazarus\lazarus\components\fppkg\src\fppkg_optionsfrm.pas(287,43) Error: (5000) Identifier not found "llProgress"
C:\Lazarus\lazarus\components\fppkg\src\fppkg_optionsfrm.pas(310,61) Error: (5000) Identifier not found "llProgress"
fppkg_optionsfrm.pas(403) Fatal: (10026) There were 2 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: C:\Lazarus\fpc\bin\x86_64-win64\ppcx64.exe returned an error exitcode
Error: (lazarus) Compile package fppkgpackagemanager 0.1: stopped with exit code 1
Error: (lazarus) Compile package RunTimeTypeInfoControls 0.1: terminated
Error: (lazarus) Compile package OnlinePackageManager 1.0.1.2: terminated
Error: (lazarus) Compile package lazprojectgroups 0.7: terminated
Error: (lazarus) [TLazPackageGraph.CompileRequiredPackages] "Exit code 1"
Error: (lazarus) Building IDE: Compile AutoInstall Packages failed.
C:\Lazarus\fpcbootstrap\make.exe: *** [useride] Error 2
fpcupdeluxe: ERROR: LazarusNativeInstaller (BuildModuleCustom: UserIDE): make.exe returned error code #2

[Edit]
In fppkg_mainform.pas I just found this:
{$ifndef ver3}
{$error This packagemanager only works with fpc 3.1.1 or higher.}
{$endif}

I guesss that I need to change from fpc 3.0 fixes.
Title: Re: Online Package Manager
Post by: balazsszekely on March 10, 2019, 05:48:10 pm
@Windsurfer

OPM and fppkg ar two separate packages. I only maintain OPM. If you find a bug related to fpkg, please report it on the bug tracker or mailing list.
Title: Re: Online Package Manager
Post by: Windsurfer on March 12, 2019, 10:16:06 am
Thanks for OPM. It is a fantastically useful tool.
I found that BareGame has a few missing files, and reported it to the author.
Title: Re: Online Package Manager
Post by: silvestre on March 12, 2019, 10:46:03 am
Yes, the OPM is a fantastic tool that makes things much easier. Good work and congratulations. :)

I don't know if it would be a good idea for the authors to provide 2 or 3 screenshots of their applications, to add a plus of visual information to the packages.

Thanks for OPM. It is a fantastically useful tool.
I found that BareGame has a few missing files, and reported it to the author.
Title: Re: Online Package Manager
Post by: Thausand on April 05, 2019, 10:35:15 am
I problem online package manager install synapse. Give error see http://forum.lazarus-ide.org/index.php/topic,44339.0.html

1) I download diff and fix LazarusDir/config/onlinepackagemanager/packages/synapse40.1/synaser.pas

2) Back Lazarus online package manager check Synapse but problem circle.

3) Click install, then download .zip, extract.zip and compile online package manager. But extract zip overwrite fix :'(

Back 1 circle.

I read help online package manager but i not read solution or i not understand good help.

Some know how fix circle online package manager ?
Title: Re: Online Package Manager
Post by: balazsszekely on April 05, 2019, 11:21:45 am
@Thausand

I updated the central repository with the latest version of synapse, patch for synaser included. Now everthing should work fine. Please test.
Title: Re: Online Package Manager
Post by: Thausand on April 05, 2019, 11:37:00 am
@Thausand

I updated the central repository with the latest version of synapse, patch for synaser included. Now everthing should work fine. Please test.
You hero GetMem !!!

Now get new error (i not have look how fix)
Code: [Select]
Free Pascal Compiler version 3.0.4-r37149 [2019/03/13] for arm
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Linux for ARMHF
(3104) Compiling laz_synapse.pas
(3104) Compiling asn1util.pas
(3104) Compiling synautil.pas
$HOME/bin/lazarus/02000000/config/onlinepackagemanager/packages/synapse40.1/jedi.inc(611,4) Error: (2050) Illegal assembler style specified "INTEL"
(3104) Compiling synafpc.pas
$HOME/bin/lazarus/02000000/config/onlinepackagemanager/packages/synapse40.1/synafpc.pas(103,1) Fatal: (10026) There were 1 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: $HOME/bin/fpc/3.0.4/bin/arm-linux/ppcarm returned an error exitcode
I read if is report error and fix forum or read code what wrong and fix.

Thanks you


add:

I think is read same thread http://forum.lazarus.freepascal.org/index.php/topic,44339.msg311625.html#msg311625
rvk write:
Quote
The only asm-command in the Synapse library is in synaser.pas and it is surrounded by IFDEF WIN32. So for Linux versions, no asm is ever used. So you can safely delete that {$ASMMODE Intel} line in jedi.inc.

add:

I check and is true. jedi.inc wrong modeasm. I read rest ok not use INTEL for CPUARM. Only INTEL for mswindows file synaser.pas.

Maybe if have time when fit then fix you or i ask how fix online package manager and i make fix ?
Title: Re: Online Package Manager
Post by: balazsszekely on April 05, 2019, 12:14:16 pm
I will fix in OPM. Can you please archive(zip) the modified jedi.inc(the one that works on your system), then attach to your next post ?
Title: Re: Online Package Manager
Post by: Thausand on April 05, 2019, 01:09:44 pm
hello thank you GetMem

I not sure if work. I need synapse compiling Lazarus Mailing List Reader. Package Synaser compile and that work and program Reader work. That ok. I not test any other.

I make comment in jedi.inc why change. Must make better, is CPUASM also define. I think that no good but i no see use. smell code = smell fix  :)

Many thanks fix synaser Online Package Manager
Title: Re: Online Package Manager
Post by: balazsszekely on April 05, 2019, 03:31:41 pm
@Thausand
You're welcome.

I did a quick test, your modification works fine(jedi.inc), so I updated OPM. Please also test the changes on your system.
Title: Re: Online Package Manager
Post by: Thausand on April 05, 2019, 04:32:20 pm
@GetMem:
Package install good. see log. Can use for compile project. I happy  :)

I give many thanks you quick fix  8-)

I play synapse and if get error i try fix and make post.

Code: [Select]
Hint: (11030) Start of reading config file /home/pi/bin/fpc/3.0.4/bin/etc/fpc.cfg
Hint: (11031) End of reading config file /home/pi/bin/fpc/3.0.4/bin/etc/fpc.cfg
Free Pascal Compiler version 3.0.4-r37149 [2019/03/13] for arm
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Linux for ARMHF
(3104) Compiling laz_synapse.pas
(3104) Compiling asn1util.pas
(3104) Compiling synautil.pas
(3104) Compiling synafpc.pas
synafpc.pas(81,28) Hint: (5024) Parameter "Module" not used
synafpc.pas(81,48) Hint: (5024) Parameter "Buffer" not used
synafpc.pas(81,63) Hint: (5024) Parameter "BufLen" not used
(9009) Assembling synafpc
synautil.pas(637,96) Warning: (5043) Symbol "TimeSeparator" is deprecated
synautil.pas(707,27) Hint: (5057) Local variable "x" does not seem to be initialized
synautil.pas(1981,3) Note: (5027) Local variable "BackStop" is assigned but never used
synautil.pas(2121,88) Warning: (5043) Symbol "ShortMonthNames" is deprecated
synautil.pas(2122,87) Warning: (5043) Symbol "ShortMonthNames" is deprecated
synautil.pas(89,22) Hint: (5023) Unit "synafpc" not used in synautil
(9009) Assembling synautil
asn1util.pas(333,18) Warning: (5089) Local variable "s" of a managed type does not seem to be initialized
asn1util.pas(468,32) Hint: (5057) Local variable "at" does not seem to be initialized
(9009) Assembling asn1util
(3104) Compiling blcksock.pas
(3104) Compiling synsock.pas
ssfpc.inc(713,40) Hint: (5091) Local variable "he" of a managed type does not seem to be initialized
ssfpc.inc(714,26) Warning: (5043) Symbol "HostToNet" is deprecated
ssfpc.inc(822,34) Hint: (5091) Local variable "he" of a managed type does not seem to be initialized
ssfpc.inc(824,18) Warning: (5043) Symbol "HostToNet" is deprecated
ssfpc.inc(411,50) Hint: (5024) Parameter "SockProtocol" not used
ssfpc.inc(411,64) Hint: (5024) Parameter "SockType" not used
ssfpc.inc(413,36) Hint: (5024) Parameter "Family" not used
ssfpc.inc(413,58) Hint: (5024) Parameter "SockType" not used
ssfpc.inc(884,25) Warning: (5043) Symbol "NetToHost" is deprecated
ssfpc.inc(884,44) Hint: (5091) Local variable "a" of a managed type does not seem to be initialized
ssfpc.inc(412,38) Hint: (5024) Parameter "Family" not used
ssfpc.inc(412,46) Hint: (5024) Parameter "SockProtocol" not used
ssfpc.inc(412,60) Hint: (5024) Parameter "SockType" not used
ssfpc.inc(77,30) Hint: (5024) Parameter "stack" not used
ssfpc.inc(75,3) Hint: (5023) Unit "synafpc" not used in synsock
(9009) Assembling synsock
(3104) Compiling synacode.pas
synacode.pas(1101,19) Hint: (5057) Local variable "MDContext" does not seem to be initialized
synacode.pas(1123,19) Hint: (5057) Local variable "MDContext" does not seem to be initialized
synacode.pas(1145,19) Hint: (5057) Local variable "MDContext" does not seem to be initialized
synacode.pas(1205,31) Hint: (5057) Local variable "W" does not seem to be initialized
synacode.pas(1295,14) Hint: (5028) Local type "Pinteger" is not used
synacode.pas(1329,23) Hint: (5057) Local variable "SHA1Context" does not seem to be initialized
synacode.pas(1351,23) Hint: (5057) Local variable "SHA1Context" does not seem to be initialized
synacode.pas(1373,23) Hint: (5057) Local variable "SHA1Context" does not seem to be initialized
synacode.pas(1459,19) Hint: (5057) Local variable "MDContext" does not seem to be initialized
(9009) Assembling synacode
(3104) Compiling synaip.pas
(9009) Assembling synaip
blcksock.pas(362,33) Hint: (5024) Parameter "Stub" not used
blcksock.pas(1825,17) Hint: (5057) Local variable "sin" does not seem to be initialized
blcksock.pas(1842,15) Hint: (5057) Local variable "sin" does not seem to be initialized
blcksock.pas(1907,15) Hint: (5057) Local variable "Sin" does not seem to be initialized
blcksock.pas(1927,13) Hint: (5057) Local variable "Sin" does not seem to be initialized
blcksock.pas(2639,46) Hint: (5057) Local variable "x" does not seem to be initialized
blcksock.pas(3012,16) Hint: (5057) Local variable "FDSet" does not seem to be initialized
blcksock.pas(1248,35) Hint: (5024) Parameter "Host" not used
blcksock.pas(1289,25) Hint: (5024) Parameter "Buffer" not used
blcksock.pas(1289,42) Hint: (5024) Parameter "Len" not used
blcksock.pas(1294,25) Hint: (5024) Parameter "Buffer" not used
blcksock.pas(1294,42) Hint: (5024) Parameter "Len" not used
blcksock.pas(4376,47) Hint: (5058) Variable "WsaDataOnce" does not seem to be initialized
(9009) Assembling blcksock
(3104) Compiling clamsend.pas
(9009) Assembling clamsend
(3104) Compiling dnssend.pas
(9009) Assembling dnssend
(3104) Compiling ftpsend.pas
(9009) Assembling ftpsend
(3104) Compiling ftptsend.pas
(9009) Assembling ftptsend
(3104) Compiling httpsend.pas
httpsend.pas(403,64) Hint: (5091) Local variable "Para" of a managed type does not seem to be initialized
httpsend.pas(403,58) Hint: (5091) Local variable "Path" of a managed type does not seem to be initialized
httpsend.pas(403,52) Hint: (5091) Local variable "Port" of a managed type does not seem to be initialized
httpsend.pas(403,46) Hint: (5091) Local variable "Host" of a managed type does not seem to be initialized
httpsend.pas(403,40) Hint: (5091) Local variable "Pass" of a managed type does not seem to be initialized
httpsend.pas(403,34) Hint: (5091) Local variable "User" of a managed type does not seem to be initialized
httpsend.pas(403,28) Hint: (5091) Local variable "Prot" of a managed type does not seem to be initialized
(9009) Assembling httpsend
(3104) Compiling imapsend.pas
(9009) Assembling imapsend
(3104) Compiling ldapsend.pas
ldapsend.pas(723,24) Hint: (5057) Local variable "Svt" does not seem to be initialized
ldapsend.pas(988,28) Hint: (5057) Local variable "xt" does not seem to be initialized
ldapsend.pas(1151,38) Hint: (5057) Local variable "x" does not seem to be initialized
ldapsend.pas(1222,33) Hint: (5057) Local variable "xt" does not seem to be initialized
(9009) Assembling ldapsend
(3104) Compiling mimeinln.pas
(3104) Compiling synachar.pas
(3104) Compiling synaicnv.pas
(9009) Assembling synaicnv
synachar.pas(1145,42) Hint: (5057) Local variable "b4" does not seem to be initialized
synachar.pas(1145,38) Hint: (5057) Local variable "b3" does not seem to be initialized
synachar.pas(1145,34) Hint: (5057) Local variable "b2" does not seem to be initialized
synachar.pas(1145,30) Hint: (5057) Local variable "b1" does not seem to be initialized
synachar.pas(1262,42) Hint: (5057) Local variable "b4" does not seem to be initialized
synachar.pas(1262,38) Hint: (5057) Local variable "b3" does not seem to be initialized
synachar.pas(1262,34) Hint: (5057) Local variable "b2" does not seem to be initialized
synachar.pas(1262,30) Hint: (5057) Local variable "b1" does not seem to be initialized
synachar.pas(1329,33) Hint: (5057) Local variable "SourceTable" does not seem to be initialized
synachar.pas(1340,40) Hint: (5057) Local variable "b4" does not seem to be initialized
synachar.pas(1340,36) Hint: (5057) Local variable "b3" does not seem to be initialized
synachar.pas(1340,32) Hint: (5057) Local variable "b2" does not seem to be initialized
synachar.pas(1340,28) Hint: (5057) Local variable "b1" does not seem to be initialized
synachar.pas(1393,37) Hint: (5091) Local variable "ucsstring" of a managed type does not seem to be initialized
synachar.pas(1419,35) Hint: (5057) Local variable "TargetTable" does not seem to be initialized
synachar.pas(1447,29) Hint: (5091) Local variable "t" of a managed type does not seem to be initialized
(9009) Assembling synachar
(9009) Assembling mimeinln
(3104) Compiling mimemess.pas
(3104) Compiling mimepart.pas
(9009) Assembling mimepart
(9009) Assembling mimemess
(3104) Compiling nntpsend.pas
(9009) Assembling nntpsend
(3104) Compiling pingsend.pas
pingsend.pas(337,3) Note: (5025) Local variable "b" not used
pingsend.pas(430,30) Hint: (4035) Mixing signed expressions and longwords gives a 64bit result
pingsend.pas(479,3) Hint: (5028) Local const "SIO_ROUTING_INTERFACE_QUERY" is not used
pingsend.pas(481,3) Note: (5025) Local variable "ICMP6Ptr" not used
pingsend.pas(482,3) Note: (5025) Local variable "s" not used
pingsend.pas(483,3) Note: (5025) Local variable "b" not used
pingsend.pas(484,3) Note: (5025) Local variable "ip6" not used
pingsend.pas(485,3) Note: (5025) Local variable "x" not used
pingsend.pas(137,24) Hint: (5024) Parameter "Value" not used
pingsend.pas(142,38) Hint: (5024) Parameter "Host" not used
pingsend.pas(87,32) Hint: (5023) Unit "synafpc" not used in pingsend
(9009) Assembling pingsend
(3104) Compiling pop3send.pas
(9009) Assembling pop3send
(3104) Compiling slogsend.pas
(9009) Assembling slogsend
(3104) Compiling smtpsend.pas
(9009) Assembling smtpsend
(3104) Compiling snmpsend.pas
(3104) Compiling synacrypt.pas
synacrypt.pas(77,23) Hint: (5024) Parameter "Key" not used
synacrypt.pas(1693,16) Hint: (5057) Local variable "t" does not seem to be initialized
synacrypt.pas(1994,14) Hint: (5057) Local variable "tk" does not seem to be initialized
synacrypt.pas(1992,3) Note: (5025) Local variable "n" not used
synacrypt.pas(69,32) Hint: (5023) Unit "synafpc" not used in synacrypt
(9009) Assembling synacrypt
snmpsend.pas(558,56) Hint: (5057) Local variable "Svt" does not seem to be initialized
snmpsend.pas(813,19) Hint: (4079) Converting the operands to "Int64" before doing the add could prevent overflow errors.
snmpsend.pas(1172,60) Hint: (5091) Local variable "s" of a managed type does not seem to be initialized
snmpsend.pas(1160,3) Note: (5027) Local variable "col" is assigned but never used
(9009) Assembling snmpsend
(3104) Compiling sntpsend.pas
sntpsend.pas(309,13) Hint: (5057) Local variable "q" does not seem to be initialized
sntpsend.pas(338,13) Hint: (5057) Local variable "q" does not seem to be initialized
(9009) Assembling sntpsend
(3104) Compiling synadbg.pas
synadbg.pas(60,51) Hint: (5023) Unit "synafpc" not used in synadbg
(9009) Assembling synadbg
(3104) Compiling synamisc.pas
synamisc.pas(114,21) Hint: (5024) Parameter "protocol" not used
(9009) Assembling synamisc
(3104) Compiling synaser.pas
synaser.pas(2332,39) Warning: (4110) range check error while evaluating constants (4294967295 must be between -2147483648 and 2147483647)
synaser.pas(2334,34) Hint: (4035) Mixing signed expressions and longwords gives a 64bit result
synaser.pas(2342,41) Warning: (4110) range check error while evaluating constants (4294967295 must be between -2147483648 and 2147483647)
synaser.pas(2344,34) Hint: (4035) Mixing signed expressions and longwords gives a 64bit result
synaser.pas(2351,40) Warning: (4110) range check error while evaluating constants (4294967295 must be between -2147483648 and 2147483647)
synaser.pas(2353,34) Hint: (4035) Mixing signed expressions and longwords gives a 64bit result
synaser.pas(119,3) Hint: (5023) Unit "synafpc" not used in synaser
(9009) Assembling synaser
(3104) Compiling tlntsend.pas
tlntsend.pas(110,26) Hint: (5024) Parameter "Sender" not used
(9009) Assembling tlntsend
laz_synapse.pas(10,3) Hint: (5023) Unit "asn1util" not used in laz_synapse
laz_synapse.pas(10,23) Hint: (5023) Unit "clamsend" not used in laz_synapse
laz_synapse.pas(10,33) Hint: (5023) Unit "dnssend" not used in laz_synapse
laz_synapse.pas(10,42) Hint: (5023) Unit "ftpsend" not used in laz_synapse
laz_synapse.pas(10,51) Hint: (5023) Unit "ftptsend" not used in laz_synapse
laz_synapse.pas(10,61) Hint: (5023) Unit "httpsend" not used in laz_synapse
laz_synapse.pas(11,3) Hint: (5023) Unit "imapsend" not used in laz_synapse
laz_synapse.pas(11,13) Hint: (5023) Unit "ldapsend" not used in laz_synapse
laz_synapse.pas(11,23) Hint: (5023) Unit "mimeinln" not used in laz_synapse
laz_synapse.pas(11,33) Hint: (5023) Unit "mimemess" not used in laz_synapse
laz_synapse.pas(11,53) Hint: (5023) Unit "nntpsend" not used in laz_synapse
laz_synapse.pas(11,63) Hint: (5023) Unit "pingsend" not used in laz_synapse
laz_synapse.pas(12,3) Hint: (5023) Unit "pop3send" not used in laz_synapse
laz_synapse.pas(12,13) Hint: (5023) Unit "slogsend" not used in laz_synapse
laz_synapse.pas(12,23) Hint: (5023) Unit "smtpsend" not used in laz_synapse
laz_synapse.pas(12,33) Hint: (5023) Unit "snmpsend" not used in laz_synapse
laz_synapse.pas(12,43) Hint: (5023) Unit "sntpsend" not used in laz_synapse
laz_synapse.pas(12,63) Hint: (5023) Unit "synacode" not used in laz_synapse
laz_synapse.pas(13,3) Hint: (5023) Unit "synacrypt" not used in laz_synapse
laz_synapse.pas(13,23) Hint: (5023) Unit "synafpc" not used in laz_synapse
laz_synapse.pas(13,42) Hint: (5023) Unit "synaip" not used in laz_synapse
laz_synapse.pas(13,50) Hint: (5023) Unit "synamisc" not used in laz_synapse
laz_synapse.pas(13,60) Hint: (5023) Unit "synaser" not used in laz_synapse
laz_synapse.pas(14,12) Hint: (5023) Unit "tlntsend" not used in laz_synapse
(9009) Assembling laz_synapse
(1008) 32922 lines compiled, 7.0 sec
(1021) 10 warning(s) issued
(1022) 114 hint(s) issued
(1023) 9 note(s) issued
Title: Re: Online Package Manager
Post by: balazsszekely on April 05, 2019, 05:21:10 pm
Quote
I play synapse and if get error i try fix and make post.
OK. Thanks for the feedback. 
Title: Re: Online Package Manager
Post by: fliegermichl on April 11, 2019, 03:55:09 pm
Hello,

is it possible to add the famous GLScene package to the list of packages in the Onlinepackagemanager?

regards
Michael
Title: Re: Online Package Manager
Post by: balazsszekely on April 11, 2019, 05:24:29 pm
Hi Michael,

Quote
is it possible to add the famous GLScene package to the list of packages in the Onlinepackagemanager?
Yes, if it compiles with Lazarus 2.0/FPC 3.0.4 and there are no licensing issues. From where can I download/test the package?

regards
GetMem
Title: Re: Online Package Manager
Post by: fliegermichl on April 12, 2019, 04:38:13 pm
Hi Getmem,

i will check that out and test it with at least Windows and Linux since i have no Mac.
if it is ok i send you further informations

thanks in advance
Michael
Title: Re: Online Package Manager
Post by: fliegermichl on April 12, 2019, 07:44:26 pm
Hi Getmem

The licence is the Mozilla Public Licence (http://"http://www.mozilla.org/MPL")

On Ubuntu Linux i can compile it without errors but i have to install some packages

Code: [Select]
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libxxf86vm-dev

On Windows it compiles without errors.

You can download it via svn with
Code: [Select]
svn checkout https://svn.code.sf.net/p/glscene/code/branches/GLSceneLCL GLSceneLCL

regards
Michael
Title: Re: Online Package Manager
Post by: avra on April 13, 2019, 06:22:42 pm
GetMem, could you please update laz_synapse package by adding ssl_openssl.pas and ssl_openssl_lib.pas to the package?

They are part of the synapse lib but unfotunately not part of the synapse package. Without them I can not compile pl_synapsevs package. Old lpk had them.

Regards,
Avra
Title: Re: Online Package Manager
Post by: Thaddy on April 13, 2019, 06:50:04 pm
In that case use them from Synapse trunk, plz, not the 2012 version: that is useless.
Title: Re: Online Package Manager
Post by: avra on April 13, 2019, 09:16:59 pm
In that case use them from Synapse trunk, plz, not the 2012 version: that is useless.
Some time ago there were 2 versions of Synapse in OPM. Official and trunk. In case of Synapse, we came to an agreement that Synapse trunk is preferred, and that there should not be 2 versions to avoid confusion and compilation issues. So trunk was used, but official Synapse lpk did not include SSL files, so these files could not be found when needed. GetMem fixed this once, but after updating Synapse with latest trunk this needs to be fixed again.
Title: Re: Online Package Manager
Post by: balazsszekely on April 15, 2019, 06:37:06 am
Hi all,

Sorry for the late response, I was away for a few days.

@Michael
Quote
The licence is the Mozilla Public Licence
On Ubuntu Linux i can compile it without errors but i have to install some packages
On Windows it compiles without errors.
I added GLScene to OPM. Thank you.

@avra
Quote
Could you please update laz_synapse package by adding ssl_openssl.pas and ssl_openssl_lib.pas to the package?
Done. Thanks for the feedback.
Title: Re: Online Package Manager
Post by: mdbs99 on April 15, 2019, 04:45:37 pm
Hello,
In a few days I would like to publish 2 projects in OPM, if it's possible.
However, I have some questions:
- is it possible publish a code without a package?
- can I use a dependency that do not exists in OPM, for example, mORMot?

The projects that I'm talking about, working on Lazarus and Delphi from 7 to lastest, are:
- James (https://github.com/mdbs99/james)
- Xavier (https://github.com/mdbs99/xavier)

James is a dependency for Xavier.

best regards,
Title: Re: Online Package Manager
Post by: balazsszekely on April 15, 2019, 07:56:12 pm
Hi mdbs99,

Unfortunately you cannot publish code without a package file(lpk). The whole concept of OPM is based on packages, a large part of the information you see in the package tree is extracted from the lpk files. More over OPM compiles, builds the packages using the lpk files.
Looking back, I think it was a mistake from my part, source code without lpk files should also be allowed, but I cannot change that now.

regards
Title: Re: Online Package Manager
Post by: wp on April 15, 2019, 08:01:40 pm
mdbs99, what is the problem of putting the files into a runtime package? With a package you could also change the installation note on the james site ("your project must include these paths") to the more Lazarus-conformal instruction of "add the package to the project requirements".
Title: Re: Online Package Manager
Post by: mdbs99 on April 15, 2019, 08:32:59 pm
@wp
You're right. But, as it still on developing, is better do not have a package... it's simple, at least for now. Remember that I need to maintain 2 packages (Lazarus and Delphi) or even N packages (one for each version of Delphi, but not sure if I really need to do that).

So, in a future I might add the runtime package.
Title: Re: Online Package Manager
Post by: wp on April 15, 2019, 08:38:57 pm
I would say that if your units are not ready for being put into a package then they are not ready for being distributed by OPM.
Title: Re: Online Package Manager
Post by: mdbs99 on April 15, 2019, 08:58:25 pm
@GetMem

I didn't see your message before... I will add a package for my projects, but what about mORMot dependency? It doesn't exist on OPM and even if we want to add, it doesn't have a package at all.
You need to compile the project first?
Maybe do you use some auto-build-test? If so, it won't compile without mORMot and its paths...


@wp

Quote
I would say that if your units are not ready for being put into a package then they are not ready for being distributed by OPM.
That was the reason that I said "In a few days I would like to publish...".
Title: Re: Online Package Manager
Post by: ASBzone on April 15, 2019, 11:08:47 pm
Looking back, I think it was a mistake from my part, source code without lpk files should also be allowed, but I cannot change that now.


Can you elaborate on this part, @GetMem ?
Title: Re: Online Package Manager
Post by: lucamar on April 16, 2019, 01:30:32 am
Hi mdbs99,
Looking back, I think it was a mistake from my part, source code without lpk files should also be allowed, but I cannot change that now.

Why a mistake? Source code without a package doesn't need installation. If anything, all that is required is to add the directory where it resides to the search path, which can be done either globally for all projects or on a per project basis.

You can't make OPM, which after all was intended only to easy the installation of packages, do everything for everybody. :)
Title: Re: Online Package Manager
Post by: balazsszekely on April 16, 2019, 06:28:58 am
@mdbs99
Quote
I will add a package for my projects, but what about mORMot dependency? It doesn't exist on OPM and even if we want to add, it doesn't have a package at all.
You need to compile the project first?
It will only work if each and every dependency has a pacakge, mORMot included.


@ ASBzone, @lucamar
Quote
Can you elaborate on this part, @GetMem ?
Quote
Why a mistake? Source code without a package doesn't need installation.
Source code without package cannot be installed, but at least should be available for download. The mistake was not allowing plain source code as zip in the central repository, so users can download it with one click. I noticed lately that code without lpk is not uncommon at all. In fact many developers prefer to distribute the code this way.
Title: Re: Online Package Manager
Post by: wp on April 16, 2019, 09:19:32 am
Why a mistake? Source code without a package doesn't need installation. If anything, all that is required is to add the directory where it resides to the search path, which can be done either globally for all projects or on a per project basis.
There's no need to "install" a runtime package either. You only compile it once so that the IDE knows where it is. Even mixed runtime/designtime packages (which is the default) need not be installed when you do everything at runtime. No need to set any paths. Setting search paths in Lazarus (like it is necessary in Delphi) may lead to compilation issues.
Title: Re: Online Package Manager
Post by: mdbs99 on April 16, 2019, 02:10:06 pm
It will only work if each and every dependency has a pacakge, mORMot included.
If the mORMot author—which I've already asked about packages, but still waiting—do not want to introduce packages, I can fork the original one, add the package and send to OPM. But it will be in my Github account, not the original one. Is that a problem?

For OPM, I believe all information might be in .json files instead of packages.


EDIT: we will introduce package for mORMot!
Title: Re: Online Package Manager
Post by: balazsszekely on April 16, 2019, 02:33:16 pm
@mdbs99
Quote
If the mORMot author—which I've already asked about packages, but still waiting—do not want to introduce packages
What is the reason?

Quote
But it will be in my Github account, not the original one. Is that a problem?
No, of course not, especially if you syncrhonize the two repo from time to time.

Quote
For OPM, I believe all information might be in .json files instead of packages.
Yes. The informations inside the lpk files are stored in a big json, so it can be easily parsed by OPM.
Title: Re: Online Package Manager
Post by: mdbs99 on April 16, 2019, 02:56:04 pm
@mdbs99
Quote
If the mORMot author—which I've already asked about packages, but still waiting—do not want to introduce packages
What is the reason?
For do not introduce packages? I'm not sure... "old school", I think.
But the good news is that we are working to introduce packages on it. Then, I'll send mORMot first. Finally, James and Xavier libraries.

Quote
No, of course not, especially if you syncrhonize the two repo from time to time.
Just for curiosity, we can do that only using Github system?

Quote
Yes. The informations inside the lpk files are stored in a big json, so it can be easily parsed by OPM.
So, I haven't understood why packages are required...   :)
Title: Re: Online Package Manager
Post by: lainz on April 25, 2019, 06:30:06 pm
Hi @GetMem!

@circular created a tool that set the version number for packages, constant in pas file and version in updates JSON.

https://forum.lazarus.freepascal.org/index.php/topic,45146.msg318995.html#msg318995

The problem seems that we have 2 different file formats in the JSON:

BGRABitmap format
https://github.com/bgrabitmap/bgrabitmap/blob/master/update_BGRABitmap.json

BGRAControls format
https://github.com/bgrabitmap/bgracontrols/blob/master/update_bgracontrols_force.json

Of these wich one is the newest format?
Title: Re: Online Package Manager
Post by: balazsszekely on April 25, 2019, 08:21:34 pm
Hi @Lainz,

Quote
Of these wich one is the newest format?

This one is the newest format: https://github.com/bgrabitmap/bgrabitmap/blob/master/update_BGRABitmap.json
When you are unsure, just go to OPM, check the package you're interested in, then go to ToolButtons-->Create-->Create JSON for Updates and generate the new json.  The generated json is just a scheleton, you have to change the DownloadZipURL and other entries depending on your configuration. You can always copy the values from the old json. When you're done just replace the old json in your github page.

PS: The last change in the format happened at least 1.5 years ago, it's unlikely that will change again in the near future, more over the two formats should be compatible. Just to be sure you can switch to the new one, it shouldn't take more then 1-2 minutes. 
Title: Re: Online Package Manager
Post by: lainz on April 25, 2019, 09:15:24 pm
Thanks, now both versions are supported by the releaser.
Title: Re: Online Package Manager
Post by: mdbs99 on April 26, 2019, 02:33:37 pm
@GetMem

FPC packages were included (https://github.com/synopse/mORMot/pull/188) into mORMot. Then, I would like to ask you to include it on OPM -> https://github.com/synopse/mORMot before send my projects that depends on mORMot.

Should I need to do something, create something, or you will do by yourself? Please, let me know.
Title: Re: Online Package Manager
Post by: balazsszekely on April 26, 2019, 04:22:05 pm
@GetMem

FPC packages were included (https://github.com/synopse/mORMot/pull/188) into mORMot. Then, I would like to ask you to include it on OPM -> https://github.com/synopse/mORMot before send my projects that depends on mORMot.

Should I need to do something, create something, or you will do by yourself? Please, let me know.
.         
Thanks. I will include it, but only Sunday. I'm in a short vacation now, without a desktop environment.
Title: Re: Online Package Manager
Post by: mdbs99 on April 26, 2019, 04:56:21 pm
Take your time, thanks!
But, please, warn me here when you do, then I will tell Arnaud about it.
Title: Re: Online Package Manager
Post by: anderbelluno on April 26, 2019, 10:37:06 pm
Hi @GetMem,
New version of REST Dataware is available on Source Forge, is possible update OPM, please?
Thks.
Title: Re: Online Package Manager
Post by: mdbs99 on April 26, 2019, 10:40:55 pm
Or maybe OPM could auto-check the last release.
For Git systems, it needs to check the last Tag.
Title: Re: Online Package Manager
Post by: balazsszekely on April 28, 2019, 02:29:39 pm
@mdbs99

I did try to add mORMot to OPM, but I cannot compile packages mormot_base, there is an error in unit SynFPCTypeInfo: "Identifier not found PRecInitData". I tested both with Lazarus 2.0.0/Trunk and FPC 3.0.4. Can you please run a few tests at your side.

@anderbelluno
I will update the package soon.
Title: Re: Online Package Manager
Post by: mdbs99 on April 28, 2019, 05:02:51 pm
@GetMem

I cannot reproduce this issue.
In attachment you can see that 1) it compiles 2) the PRecInitData is not else then TypInfo.PRecInitData.

I'm using: Lazarus 2.1.0 r59757M FPC 3.3.1 i386-win32-win32/win64
Title: Re: Online Package Manager
Post by: mdbs99 on April 28, 2019, 05:07:47 pm
Hmm, maybe the problem is the FPC version?
Title: Re: Online Package Manager
Post by: balazsszekely on April 28, 2019, 05:35:46 pm
Quote
Hmm, maybe the problem is the FPC version?
Yes. With FPC Trunk works fine. I added the package to OPM, with the mention that FPC Trunk needed(see attached image). Please test if it works at your side. Thank you.
Title: Re: Online Package Manager
Post by: mdbs99 on April 28, 2019, 06:03:36 pm
Ok, thank you.
I will check if it is possible run mORMot on FPC 3.0.4 to change FPC compatibility information in the future.
Title: Re: Online Package Manager
Post by: balazsszekely on April 28, 2019, 06:28:45 pm
@mdbs99
Quote
I will check if it is possible run mORMot on FPC 3.0.4 to change FPC compatibility information in the future.
That would be great, a lot of people use FPC 3.0.4.

@anderbelluno
Done. I updated the package.
Title: Re: Online Package Manager
Post by: wp on April 28, 2019, 06:37:07 pm
Quote
Hmm, maybe the problem is the FPC version?
I added the package to OPM, with the mention that FPC Trunk needed(see attached image).
Wouldn't it be required additionally that the FPC version is checked when the installation is started; and when the version does not fit the installation should be aborted with a clear error message about the version mismatch instead of some FPC message occuring later during compilation.

BTW, I wonder why so many users and component authors are so eager for the latest FPC version.
Title: Re: Online Package Manager
Post by: lainz on April 28, 2019, 06:41:00 pm
Because it has fixes we need to work in our applications?

Switched to 2.0 fixes stable FPC when a bugfix to OpenSSL was needed. Switched back to trunk.
Title: Re: Online Package Manager
Post by: balazsszekely on April 28, 2019, 08:47:45 pm
@wp
Quote
Wouldn't it be required additionally that the FPC version is checked when the installation is started; and when the version does not fit the installation should be aborted with a clear error message about the version mismatch instead of some FPC message occuring later during compilation.
That's a good idea. I was thinking about drawing with red the packages which cannot be installed. More over, when a user wish to install a non-compatible package a clear warning should appear, this way preventing a boring download and unpack. I will try to implement the feature soon. Still OPM depends on the developers accurate description.

Quote
BTW, I wonder why so many users and component authors are so eager for the latest FPC version.
I cannot comment on this one. Most likely it's a trend to always update everything to the latest version, or perhaps for some users there is a good reason to update. Personally I prefer Lazarus trunk combined FPC 3.0.4.

@Lainz
Quote
Switched to 2.0 fixes stable FPC when a bugfix to OpenSSL was needed. Switched back to trunk.
OK. This is a good reason.   :)
Title: Re: Online Package Manager
Post by: mdbs99 on April 29, 2019, 02:12:13 pm
Wouldn't it be required additionally that the FPC version is checked when the installation is started; and when the version does not fit the installation should be aborted with a clear error message about the version mismatch instead of some FPC message occuring later during compilation.

BTW, I wonder why so many users and component authors are so eager for the latest FPC version.

About mORMot there is a reason that you can see here (https://synopse.info/forum/viewtopic.php?pid=29473#p29473).
Title: Re: Online Package Manager
Post by: kevin.black on May 01, 2019, 12:51:08 am
@wp, @getmem,

@wp
Quote
Wouldn't it be required additionally that the FPC version is checked when the installation is started; and when the version does not fit the installation should be aborted with a clear error message about the version mismatch instead of some FPC message occuring later during compilation.
That's a good idea. I was thinking about drawing with red the packages which cannot be installed. More over, when a user wish to install a non-compatible package a clear warning should appear, this way preventing a boring download and unpack. I will try to implement the feature soon. Still OPM depends on the developers accurate description.

That would be an excellent idea, I'm constantly frustrated trying to install packages that either fail to install or partially install. There should also be some way to report the installation failure (if not already flagged).

My only concern is that this (seems to me) to be a lot of work. Maybe not, just looks like the fabled 'someone' is going to get stuck monitoring package compatibility.

Kevin
Title: Re: Online Package Manager
Post by: balazsszekely on May 01, 2019, 09:01:50 am
@kevin.black
Quote
That would be an excellent idea, I'm constantly frustrated trying to install packages that either fail to install or partially install.
In my opinion your biggest problem is the lack of support for cocoa. Package maintainers rarely check beyond win32/win64/gt2. This is understandable, since there are a lot of widgetset/architecture out there, some of them exotic and rare, like arm. The bottom line is, no matter how many countermeasure I(we) take, OPM will always depend on the accuracy of the description given by package maintainers, which is incomplete in many cases. More over ~40% of the packages are abandoned or purely supported. 
 
Quote
My only concern is that this (seems to me) to be a lot of work.
Yes. That would be a constant work for at least 5 people.
Title: Re: Online Package Manager
Post by: mdbs99 on May 01, 2019, 01:18:56 pm
The bottom line is, no matter how many countermeasure I(we) take, OPM will always depend on the accuracy of the description given by package maintainers, which is incomplete in many cases.
So, this is better do not receive a package, if it is incomplete.
That will save a lot of work to check, test, etc.
Title: Re: Online Package Manager
Post by: balazsszekely on May 01, 2019, 03:47:50 pm
@mdbs99
Quote
So, this is better do not receive a package, if it is incomplete.
True, but even a perfect package can be broken by a new FPC or Lazarus release, so a constant check is still needed. I will do my best to update packages as much as possible.
Title: Re: Online Package Manager
Post by: avra on May 02, 2019, 02:27:43 am
The bottom line is, no matter how many countermeasure I(we) take, OPM will always depend on the accuracy of the description given by package maintainers, which is incomplete in many cases.
So, this is better do not receive a package, if it is incomplete.
So what would be a complete package? One that has been tested on all architectures, all OSes, previous, current, next and trunk versions of both FPC and LAZ, including all combinations? No, I do not think that package authors are willing to do that. Instead, I would rather like to see OPM collecting anonymous statistics about package installations from all users (failed/succeeded packages installations for each arch/os/fpc/laz combo), and then showing my combo stats to me to see. Then I can decide if I want to proceed with package installation or not. After package is updated, statistics are either reset, or even better kept for current and previous package version.

Heh, dreaming is free, right?  :) ;) :)
Title: Re: Online Package Manager
Post by: wp on May 05, 2019, 11:25:26 am
GetMem, could you have a look at this: https://forum.lazarus.freepascal.org/index.php/topic,45177.msg320180.html#msg320180 - Edson is trying to add his syntaxhighlighter.
Title: Re: Online Package Manager
Post by: tr_escape on May 08, 2019, 12:47:55 pm
Hello,

I am using the "dataportlasarus.lpk" but version of github and "http://packages.lazarus-ide.org/" is not same and the difference is about linux compiling:

https://github.com/serbod/dataport/commit/87fdbae42563d02be59fb98e331a5ac24ff4ae1f (https://github.com/serbod/dataport/commit/87fdbae42563d02be59fb98e331a5ac24ff4ae1f)

Could you please update lazarus's package?

Best regards
Title: Re: Online Package Manager
Post by: balazsszekely on May 08, 2019, 01:12:44 pm
Hi tr_escape,

Quote
I am using the "dataportlasarus.lpk" but version of github and "http://packages.lazarus-ide.org/" is not same and the difference is about linux compiling:

https://github.com/serbod/dataport/commit/87fdbae42563d02be59fb98e331a5ac24ff4ae1f

Could you please update lazarus's package?
Done. Please test if everything is OK. Thanks.

regards,
GetMem
Title: Re: Online Package Manager
Post by: tr_escape on May 08, 2019, 02:25:40 pm
Hi tr_escape,

Quote
I am using the "dataportlasarus.lpk" but version of github and "http://packages.lazarus-ide.org/" is not same and the difference is about linux compiling:

https://github.com/serbod/dataport/commit/87fdbae42563d02be59fb98e331a5ac24ff4ae1f

Could you please update lazarus's package?
Done. Please test if everything is OK. Thanks.



regards,
GetMem



Hello Getmem,

No it is not working correctly because of there are a lot of diffences both edition.
If possible could you please rollback to 1.0.2 ?

I can change my local changes for linux sorry about that.

I will report to serbod user


If you need 1.0.2 this commit will be rollback

Commits on May 25, 2017

    * Delphi7 fixes
    @serbod
    serbod committed on 25 May 2017


https://github.com/serbod/dataport/tree/0c782bdae94af21f11443f9c5dc35c095c0448bc
 (https://github.com/serbod/dataport/tree/0c782bdae94af21f11443f9c5dc35c095c0448bc)
Title: Re: Online Package Manager
Post by: balazsszekely on May 08, 2019, 06:52:22 pm
@tr_escape

OK. I rolled back to 1.0.2.
Title: Re: Online Package Manager
Post by: wp on May 12, 2019, 06:31:25 pm
I refurbished the old TParadoxDataset package on CCR (https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/tparadoxdataset/) and made it ready for OPM:

* Download of package zip: https://sourceforge.net/projects/lazarus-ccr/files/Paradox%20DataSet/tparadoxdataset-v0.2.zip/download
* Update-JSON download: https://sourceforge.net/projects/lazarus-ccr/files/Paradox%20DataSet/OPM/update_TParadoxDataset.json/download

Find the main json in the attachment.

I am aware that there is already a TParadox component in the Lazarus distribution, but as I noticed recently it requires externals dlls for which pre-compiled versions cannot be found for Windows 64bit.

The new package is pure Pascal and does not require external libraries. It does support BLOBs, bookmarks, filtering and text conversion to UTF8. However, it is a read-only dataset. Therefore, its usage is primarily in converting old PARADOX files to newer database formats.

A modification of the standard Lazarus database "mushroom" demo was added as a sample project.

The wiki (http://wiki.freepascal.org/TParadoxDataSet) was extended for documentation.

GetMem, I would appreciate if you could add the component to OPM.

Title: Re: Online Package Manager
Post by: balazsszekely on May 13, 2019, 07:24:07 am
@wp
Thanks for the new package. I added to OPM.
Title: Re: Online Package Manager
Post by: wp on June 04, 2019, 03:45:51 pm
GetMem, could you update two packages in OPM:
But seriously again: It was discussed in another thread that OPM should check this information when a package is installed. AFAICS now, mismatching versions should only yield a warning but not prohibit installation.

Widgetsets should be made selectable from a combobox instead of allowing free text entry; also, I a missing some way to specify whether a package is suitable for 32bit/64bit targets.
Title: Re: Online Package Manager
Post by: balazsszekely on June 04, 2019, 06:57:19 pm
@wp
Quote
GetMem, could you update two packages in OPM:
I updated the packages. Thanks for the new versions.

Quote
But seriously again: It was discussed in another thread that OPM should check this information when a package is installed. AFAICS now, mismatching versions should only yield a warning but not prohibit installation.
I did try to implement it(at least in theory), but I failed. It looks simple, but believe me is not simple at all. I can add a selectable combobox, but who's gonna list all the widgetsets other then the obvious ones(win32/64, gtk2, qt, carbon, cocoa). How can I found the actual widgetset? I need a ton of ifdefs? Like this?:
Code: Pascal  [Select][+][-]
  1.  {$ifdef win64}
  2.   CurWidgetset = win64;
  3.   {$endif}
  4.   {$ifdef win32}
  5.   CurWidgetset = win32;
  6.   {$endif}
  7.   //...
Where can I found the list with all possible WS and the ifdef equivalent?
What should I do with the following, already existing widgetset description(this was taken from the main json, it's a real case): "Not a design-time package"?
What about Lazarus/ FPC versions? Should I differentiate between versions and subversion, like 2.0.0/ 2.0.2?
How can I preserve the compatibility between the new json(with all the selectable widgetsets, Lazarus/FPC versions) and the old one? 
Title: Re: Online Package Manager
Post by: wp on June 04, 2019, 07:25:04 pm
Looking back this thread I see that I did not remember the discussion correctly (I was referring to the discussion around this topic: https://forum.lazarus.freepascal.org/index.php/topic,34297.msg319438.html#msg319438).

In my incorrect memories I had thought that the installation of a package by OPM should only be done when there is a precise match of widgetset and Lazarus/FPC version. Besides the issues that you mention I also believe that this requirement puts an immense burdon on the package maintainers, and I fear soon installations will be blocked by unmaintained package descriptions.

Restricting to FPC alone as discussed above is only half the story and not satisfying to users because it will not be understood that the FPC version is checked by the installer but the widgetset not.

Therefore, I think that OPM should remain as it is.
Title: Re: Online Package Manager
Post by: korba812 on June 04, 2019, 09:14:30 pm
How can I found the actual widgetset?
...
Where can I found the list with all possible WS and the ifdef equivalent?
You will get this information in "LCLPlatformDef" unit.

If you need ifdef it is defined as "LCLplatform" eg LCLwin32 or LCLgtk2 etc.
{$ifdef LCLwin32}....{$endif}
Title: Re: Online Package Manager
Post by: avra on June 05, 2019, 10:21:11 am
In my incorrect memories I had thought that the installation of a package by OPM should only be done when there is a precise match of widgetset and Lazarus/FPC version. Besides the issues that you mention I also believe that this requirement puts an immense burdon on the package maintainers, and I fear soon installations will be blocked by unmaintained package descriptions.
There should be no restrictions during installation attempts. It would be ideal if OPM could simply determine widgetset/architecture/laz/fpc combo, contact server to get installation failure rate (something like 522/741 meaning success/attempts), get last successful/unsuccessful package installation date for such combo (get all this info while reading list of available OPM packages), and show it to the user next to each package. Package success and combo info (if allowed by user) should be sent to server. At the beginning (and with each new fpc/laz version) this info will not show much, but in time data will be more and more accurate. If available, full version info should be matched (like 2.0.3 or 3.0.4) and shown, but if not then more relaxed partial version info should be looked for (like 2.0 or 3.0) and shown with warning color. Shown info would not be a guarantee that a package will be installed (trunk?), but it will be a good statistical probability info before any package installation attempt. Last successful and installation date of the package for user's combo would be especially informative to the user.
Title: Re: Online Package Manager
Post by: balazsszekely on June 06, 2019, 01:22:31 pm
Sorry for the late response and thanks for the suggestions.

@wp
I remember the discussion. I think I found a reasonable solution for everyone.

@korba812
LCLPlatformDef is a life saver. Thanks.

@avra
For now, the communication between the server and OPM is in a single direction. The site admin only allows upload if a CGI is implemented(security reasons). This is why I did not completed the voting system. For the same reasons, any other statistics is also out of reach.

I implemented the "incompatible package" warning. A few notes:
1. The warning is optional(see image1). If the checkbox is unchecked, everything works as it did until now. For testing purposes the option is enabled by default, it can be disabled later if needed. Even when enabled, the user has the possibility to continue the install process.
2. I only added stable Lazarus/FPC versions + trunk for both(see image2). By default the following versions are supported:
     Lazarus:  2.0.0, 2.0.2
     FPC: 3.0.0, 3.0.2, 3.0.4
     WidgetSet:  win32/win64, gtk2
In my experience almost every package supports the above Lazus/FPC versions and widgetsets. When needed, a package maintainer can extend the list. If a new stable version appears, I will extend the default list. Old, obsolete versions like Laz. 1.6.0 are no longer supported.
3. The warning dialog looks like this(see image3), more detailed information can be obtained from hint.
4. The feature does not require any extra work from the package developers.
5. The feature is compatible with older versions of OPM.
5. I did not have time to test extensively. I will fix the reamining bugs later.

PS1: Suggestions as always are welcomed.
PS2: If you wish to test, try to install LazProfiler. The package needs Laz/FPC trunk, any other configuration should trigger the warning message.
Title: Re: Online Package Manager
Post by: Onur2x on June 14, 2019, 02:27:22 am
Online Package Manager for turkish language packed pls add . thnx you
Title: Re: Online Package Manager
Post by: balazsszekely on June 14, 2019, 06:12:29 am
@Onur2x

Quote
Online Package Manager for turkish language packed pls add . thnx you
Thanks. I sent the files to @Maxim.
Title: Re: Online Package Manager
Post by: lainz on June 15, 2019, 04:04:30 am
Sorry for the late response and thanks for the suggestions.

@wp
I remember the discussion. I think I found a reasonable solution for everyone.

@korba812
LCLPlatformDef is a life saver. Thanks.

@avra
For now, the communication between the server and OPM is in a single direction. The site admin only allows upload if a CGI is implemented(security reasons). This is why I did not completed the voting system. For the same reasons, any other statistics is also out of reach.

I implemented the "incompatible package" warning. A few notes:
1. The warning is optional(see image1). If the checkbox is unchecked, everything works as it did until now. For testing purposes the option is enabled by default, it can be disabled later if needed. Even when enabled, the user has the possibility to continue the install process.
2. I only added stable Lazarus/FPC versions + trunk for both(see image2). By default the following versions are supported:
     Lazarus:  2.0.0, 2.0.2
     FPC: 3.0.0, 3.0.2, 3.0.4
     WidgetSet:  win32/win64, gtk2
In my experience almost every package supports the above Lazus/FPC versions and widgetsets. When needed, a package maintainer can extend the list. If a new stable version appears, I will extend the default list. Old, obsolete versions like Laz. 1.6.0 are no longer supported.
3. The warning dialog looks like this(see image3), more detailed information can be obtained from hint.
4. The feature does not require any extra work from the package developers.
5. The feature is compatible with older versions of OPM.
5. I did not have time to test extensively. I will fix the reamining bugs later.

PS1: Suggestions as always are welcomed.
PS2: If you wish to test, try to install LazProfiler. The package needs Laz/FPC trunk, any other configuration should trigger the warning message.

About the CGI: we're talking about Linux right? The CGI which database should use?

There's a package I was testing the other day that provides simple server, CGI, Apache and other modes with modules as endpoints or as well the newest version using routes. Fcl-web or package weblaz.

At work I use sqlite and an executable that works as a local server with a lot of get and post endpoints that are threaded. It should be something like that. We use a browser to run the HTML and js app in localhost and consume the endpoints. In this case will be a internet server instead of a local one. And the endpoints should be consumed from opm only... That's the hard part since there's no login to vote. One can send an unlimited number of votes from postman for example... Else we need to make a login system as well.
Title: Re: Online Package Manager
Post by: avra on June 15, 2019, 11:16:57 am
Something needs to be changed for pl packages in OPM. Installing 5-6 packages at a time I installed all pl packages except pl_dwscript which could not compile now on 2.0.3, although it worked on 2.0.1. I will deal with that later. The problem I report is that later I tried to install pl_dwscript package with some other packages, and after OPM failed to install it again, I left OPM and returned to IDE. IDE reported that files of all pl packages changed and need to be reloaded but failed to do so. When I looked in ct4laz dir, there was only pl_dwscript package. All other pl packages were missing. I had to reinstall them all again. Funny thing is that I am pretty sure that once or twice I tried to install only problematic package and OPM did not delete other packages, but now that I tried to install it with other packages, when failed OPM deleted all other already installed pl packages. If you want you can disable pl_dwscript in OPM and we can leave it only in ct4laz.

Fresh Lazarus 2.0 fixes and FPC 3.2 fixes 32bit via fpcupdeluxe on Win10x64.

EDIT: It is not just the case with pl packages. The same just happened with PlotPanel package:
Quote
Error reading file: Unable to open file "C:\PRG\Lazarus\Fixes20x32x\config_lazarus\onlinepackagemanager\packages\plotpanel-lazarus-0.97.1\plot.lpk"
Title: Re: Online Package Manager
Post by: balazsszekely on June 15, 2019, 10:16:01 pm
Hi all,

I'm on vacation for two weeks. I will address the issues when I return. Sorry for the inconveniences.
Title: Re: Online Package Manager
Post by: lainz on June 16, 2019, 01:23:26 am
Have a good vacation  :)
Title: Re: Online Package Manager
Post by: avra on July 03, 2019, 10:32:41 pm
...pl_dwscript could not compile now on 2.0.3, although it worked on 2.0.1.
I tried but failed to make it work. It works on older LAZ 2.0.1 2019-05-08 FPC 3.2.0 SVN 60354M, but not on current fixes LAZ 2.0.3 and FPC 3.2.0.
In case anyone wants to try here is the package: https://bitbucket.org/avra/ct4laz/downloads/pl_dwscript.zip
Title: Re: Online Package Manager
Post by: balazsszekely on July 10, 2019, 06:38:30 am
@avra
Finally I'm back. Sorry for the delay. I ran a few test with Lazarus Trunk/FPC 3.0.4, unfortunately I cannot reproduce the issues you mentioned. I will also try FPC 3.2.0 soon, most likely the problem only occur with a newer version of freepascal. Can you please test with Lazarus 2.0.2 or/and Trunk, combined with FPC 3.0.4? For now, 2.0.2/3.0.4 is the officially supported version. I would like to support FPC trunk too if possible, but I had issues in the past when I tried to install packages. The issues were unrelated to OPM, the internal package system could not install the packages("incompatible ppu files" if I remember correctly).

@Lainz
By CGI I meant https://en.wikipedia.org/wiki/Common_Gateway_Interface and yes the console application will run on a linux server, the same server where the package files are located. OPM will communicate with that console application, which will update the database internally. I don't know any specific details about the database, if I understood correctly the site admin prefers PostgreSQL. The console application can be written in any language, of course freepascal is the prefered one. :)
Title: Re: Online Package Manager
Post by: avra on July 10, 2019, 08:46:44 am
I ran a few test with Lazarus Trunk/FPC 3.0.4, unfortunately I cannot reproduce the issues you mentioned. I will also try FPC 3.2.0 soon, most likely the problem only occur with a newer version of freepascal. Can you please test with Lazarus 2.0.2 or/and Trunk, combined with FPC 3.0.4? For now, 2.0.2/3.0.4 is the officially supported version.
I will. Thanks for trying.

I would like to support FPC trunk too if possible, but I had issues in the past when I tried to install packages. The issues were unrelated to OPM, the internal package system could not install the packages("incompatible ppu files" if I remember correctly).
I have found a work around for "incompatible ppu" which works each time I face this problem:
https://forum.lazarus.freepascal.org/index.php/topic,43646.msg326093.html#msg326093
I have no desire to support trunk which is a moving target, but official FPC 3.2 should be around the corner, and I have to use it for several reasons so it has my full attention. Unfortunately as you could see I could not make pl_dwscript work with it.
Title: Re: Online Package Manager
Post by: lainz on July 10, 2019, 11:35:41 pm
@Lainz
By CGI I meant https://en.wikipedia.org/wiki/Common_Gateway_Interface and yes the console application will run on a linux server, the same server where the package files are located. OPM will communicate with that console application, which will update the database internally. I don't know any specific details about the database, if I understood correctly the site admin prefers PostgreSQL. The console application can be written in any language, of course freepascal is the prefered one. :)

Nice. Well so is not that hard I think, but of course it takes a lot of time to make something good.

If I understand CGI correctly, it must connect to the database each time, since is a console application that:
- runs, connects to the db, get / put data, makes the response and then is closed.

Is not a service that keeps running.

And yes, I think FPC will do.

And I have a lot of questions since I never coded a CGI, for example, if you need to connect to the DB to debug the application, must use a local database and a local apache server? Or must have a directory to test in the real server, and always copy and paste that binary to the server to test?
Sounds somewhat tedious if the last one is the workflow.  :)
Title: Re: Online Package Manager
Post by: lucamar on July 11, 2019, 01:25:31 am
And I have a lot of questions since I never coded a CGI, for example, if you need to connect to the DB to debug the application, must use a local database and a local apache server? Or must have a directory to test in the real server, and always copy and paste that binary to the server to test?
Sounds somewhat tedious if the last one is the workflow.  :)

The "normal" workflow for building CGIs is to have a local server (doesn't need to be Apache, almost any will do) and, if a DB is needed, a local DB. Only the last testing steps should be done iin a "real" server--although never in the production one!--so that you can test whether the network layer interferes unduly with your program (it shouldn't but ... Murphy!).

Note also that, normally, from the CGI's p.o.v. the web server is almost always local. That is, the server calls the CGI as you would, for example, in a program using TProcess.

If the DB connection is slow to stablish and may impair your CGI's performance you should investigate FastCGI. With it your program is run once and kept "alive" so it in turn can keep alive the connection to the DB. Of course, this posses a small security risk but in normal scenarios it should be almost negligible.

HTH
Title: Re: Online Package Manager
Post by: balazsszekely on July 11, 2019, 08:44:54 am
@avra
1. I fixed pl_DWScript, now it should work with FPC 3.2.0 too. I also updated in OPM.
2. I did try to install/reinstall as many packages as possible with Lazarus Trunk/FPC 3.2.0(pl_X and others), but the error you mentioned eludes me. Everything works out of the box.
3. Unfortunately the "Clean all" suggestions wont work with FPC trunk. A typicall example is BGRABitmap combined with BGRAControls. After you install BGRABitmap manually, then try to install BGRAControls, the package system will complain about "icompatible ppu" files, although you just compiled BGRABitmap so everything should be compatible.  :)  I had to delete the lib folder inside BGRABitmap, then I was able to installl both package. Everything works fine with FPC 3.0.4, and since FPC trunk is not yet officially suppoted, I did not investigate the issue more thoroughly.

PS: (2) Here is a somewhat boring video about the install process: https://www.youtube.com/watch?v=IRJkyiOn3AA

@Lainz
Quote
And I have a lot of questions since I never coded a CGI
Neither do I. This is why I never had the motivation to implement that feature(plus the lack of time). If I understood correctly the CGI is needed mainly for security purposes, if OPM directly updates the database, nasty things can happen.

@lucamar
Thanks for the suggestions.
Title: Re: Online Package Manager
Post by: lucamar on July 11, 2019, 02:55:40 pm
A CGI is not intrinsicallly different from any other console app: you read your input from the "terminal" (or the environment), fiddle with it, do your thing and output the response.

Only, in a CGI the inputs/outputs must be somewhat strictly formatted and the domain is quite "closed", which is why it's possible (and desirable!) to have a "CGI Program" category in the development environment with some goodies added to help you get easily the request fields and buid the response ones.

Otherwise? Just a standard program. That is, after all, the beauty of the CGI compared to server-specific modules, etc.
Title: Re: Online Package Manager
Post by: avra on July 11, 2019, 02:59:07 pm
1. I fixed pl_DWScript, now it should work with FPC 3.2.0 too. I also updated in OPM.
Very, very, very nice. Thank you! :D I will update ct4laz repo.

2. I did try to install/reinstall as many packages as possible with Lazarus Trunk/FPC 3.2.0(pl_X and others), but the error you mentioned eludes me. Everything works out of the box.
It would be very good news if Lazarus trunk does not suffer the "icompatible ppu" problem, and even better if patch makes it's way into fixes.

3. Unfortunately the "Clean all" suggestions wont work with FPC trunk. A typicall example is BGRABitmap combined with BGRAControls. After you install BGRABitmap manually, then try to install BGRAControls, the package system will complain about "icompatible ppu" files, although you just compiled BGRABitmap so everything should be compatible.  :)  I had to delete the lib folder inside BGRABitmap, then I was able to installl both package. Everything works fine with FPC 3.0.4, and since FPC trunk is not yet officially suppoted, I did not investigate the issue more thoroughly.
In similar cases "Clean All" didn't work for me either, but "Clean common files" did work (with mentioned compilation switches). Strange but true in my case, and tested up to unofficial FPC 3.2 fixes. I also do not bother much with FPC trunk since it's a moving target.

PS: (2) Here is a somewhat boring video about the install process: https://www.youtube.com/watch?v=IRJkyiOn3AA
Hopefully during the weekend I will catch time to look and do promised tests.
Title: Re: Online Package Manager
Post by: lainz on July 14, 2019, 12:18:20 am
Hi GetMem, can you please update in OPM BGRAControls and BGRABitmap?

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on July 14, 2019, 06:14:20 am
@Lainz
Did you go undercover?  :D

Quote
Can you please update in OPM BGRAControls and BGRABitmap?
Done.
Title: Re: Online Package Manager
Post by: lainz on July 14, 2019, 06:15:33 pm
@Lainz
Did you go undercover?  :D

 :o That didn't work...

Thanks for updating the packages.
Title: Re: Online Package Manager
Post by: mdbs99 on July 17, 2019, 03:09:08 pm
GetMem,

There is an situation on mORMot Packages (since we published, but I haven't time until now) that is inconvenient.

If I add two packages (or more) like `momort_base`, `mormot_rest`, and `mormot_sqlite3` I got messages like this:

Code: Pascal  [Select][+][-]
  1. Warning: other unit files search path (aka unit path) of "mormot_sqlite3 1.18" contains "<PATH>\lib", which belongs to package "mormot_base"
  2. Warning: other unit files search path (aka unit path) of "mormot_rest 1.18" contains "<PATH>\lib\SQLite3", which belongs to package "mormot_sqlite3"
  3. Warning: other unit files search path (aka unit path) of "mormot_base 1.18" contains "<PATH>\lib", which belongs to package "mormot_sqlite3"
  4.  
  5. Note: Duplicate unit "mORMotWrappers" in "mormot_base 1.18", orphaned ppu "<PATH>\lib\Packages\lib\i386-win32\mORMotWrappers.ppu"
  6. Note: Duplicate unit "mORMotWrappers" in "mormot_rest 1.18", ppu="<PATH>\lib\Packages\lib\i386-win32\mORMotWrappers.ppu", source="<PATH>\lib\SQLite3\mORMotWrappers.pas"
  7.  

The simpler way to fix that is having different source directories for each package — like Zeos does, for example.
Another option is having just one or two packages, as all sources stay (almost) together, however this issue could happen, anyway... but less.
Finally, I can think in one package with just basic units added, because some units is used just with another packages — again Zeos + SynDBZeos — and if the user doesn't have such libs, he/she couldn't compile. But, without those units added, it is possible to compile *and* having others (SynDBZeos) in PATH, just in case.

I will ask Arnaud about these options. But what do you think is the best?
Title: Re: Online Package Manager
Post by: balazsszekely on July 17, 2019, 04:08:57 pm
Hi mdbs99,

Unfortunately I'm not familiar with mORMot, so I don't have any preference. You can add as many subfolders and/or dependencies you like. If the package compiles with at least one combination of FPC/Lazarus, I can add it to OPM.
Title: Re: Online Package Manager
Post by: mdbs99 on July 17, 2019, 04:18:22 pm
GetMem,

I've already talked to Arnaud: we will create just one package.
I'm working on it. After I send a PR (and this be approved, I hope), I'll warn you to update.

Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on July 17, 2019, 04:43:14 pm
I've already talked to Arnaud: we will create just one package.
I'm working on it. After I send a PR (and this be approved, I hope), I'll warn you to update.
Thank you. I will add the package after it's ready.
Title: Re: Online Package Manager
Post by: mdbs99 on July 18, 2019, 07:13:55 pm
Thank you. I will add the package after it's ready.

Hello GetMem,

It's done!

Please, could you update the packages?
At the end we stay with two packages: The `mormot_base` and `mormot_cross` (this last was renamed from mormot_crossplatform to mormot_cross).

Just in case, you can see the PR here (https://github.com/synopse/mORMot/pull/222) to understand the changes.

thank you.

--

EDIT: there is something wrong in compilation on i386, not related to Packages. Please, wait until everything is done. Sorry.
Title: Re: Online Package Manager
Post by: mdbs99 on July 19, 2019, 02:48:40 pm
GetMem,

The fix for compilation in i386 was applied.

Packages are working. However, we have just one inconvenient issue, which I've posted on Lazarus' list but, as you (all) know much about Packages, maybe can help me:

https://lists.lazarus-ide.org/pipermail/lazarus/2019-July/236725.html

You can update mORMot Packages now, if you want. But would be better to fix this inconvenient before. Thanks.

best regards,
Marcos Douglas
Title: Re: Online Package Manager
Post by: balazsszekely on July 20, 2019, 11:42:53 am
GetMem,

The fix for compilation in i386 was applied.

Packages are working. However, we have just one inconvenient issue, which I've posted on Lazarus' list but, as you (all) know much about Packages, maybe can help me:

https://lists.lazarus-ide.org/pipermail/lazarus/2019-July/236725.html

You can update mORMot Packages now, if you want. But would be better to fix this inconvenient before. Thanks.

best regards,
Marcos Douglas
I will add it tomorrow or Monday.  I'm out of office with no PC available.
Title: Re: Online Package Manager
Post by: mdbs99 on July 20, 2019, 02:09:50 pm
Quote
Packages are working. However, we have just one inconvenient issue, which I've posted on Lazarus' list but, as you (all) know much about Packages, maybe can help me:

https://lists.lazarus-ide.org/pipermail/lazarus/2019-July/236725.html
It is a bug in Lazarus but it seems that it was fixed by Mattias (see here (https://lists.lazarus-ide.org/pipermail/lazarus/2019-July/236729.html)) — but I haven't tested yet, but I will.

I will add it tomorrow or Monday.  I'm out of office with no PC available.
As we here don't use Lazarus trunk in production but mORMot, I don't know if we keep the current Package implementation, which works but it's showing those Hints by Lazarus when users add mORMot+zcomponent into the same project, or Plan B: remove Conditionals, which add ZeosLib "dynamically" into the Package, and tells users that zcomponent should be included manually if they want to — I prefer last one.

I'm asking Arnaud what he wants. So, don't need to be hurry.  :)

Thank you for your patience.
regards.

PS: I don't see mORMot in http://packages.lazarus-ide.org anymore?
Has it some robot compiling/sending and if something was wrong, it was removed automatically? 
Title: Re: Online Package Manager
Post by: balazsszekely on July 22, 2019, 06:43:25 am
Quote
I'm asking Arnaud what he wants. So, don't need to be hurry.  :)
OK. I will wait.  :)

Quote
PS: I don't see mORMot in http://packages.lazarus-ide.org anymore?
Has it some robot compiling/sending and if something was wrong, it was removed automatically?
That was my mistake. Sorry for that. I readded the old version.
Title: Re: Online Package Manager
Post by: mdbs99 on July 22, 2019, 02:02:07 pm
GetMem,

It's done!  :D
Please, update the sources. Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on July 22, 2019, 04:30:38 pm
@mdbs99

Quote
It's done!  :D
Please, update the sources. Thanks.
Thank you. I updated the repository.
Title: Re: Online Package Manager
Post by: avra on July 27, 2019, 01:01:17 am
PS: (2) Here is a somewhat boring video about the install process: https://www.youtube.com/watch?v=IRJkyiOn3AA
Hopefully during the weekend I will catch time to look and do promised tests.
I didn't say which weekend  ;)

I installed with fpcupdeluxe 202+304 and installed first all internal packages that could be compiled, then started adding OPM packages like first all packages starting with A, then with B, and after I let it install all C packages it has shown "incompatible ppu". As always, and as you can see from the screenshot, it was not a problem with one of the newly installed packages, but with some old one. This time it was not BGRA but Sparta. It happens most often with these 2 packages, but it happened with other packages too. Unfortunately, workaround fix that works each time with 321+203 does not work with 304+202. I had to remove SpartaDockedFormEditor to be able to continue adding packages. Then I can install for some time, and then some other package shows incompatible ppu, I remove it and continue adding packages, and so on and so on... Unlike 321, 304 needs to be patched to avoid "no memory left" - but that's a non-related problem.
Title: Re: Online Package Manager
Post by: balazsszekely on July 27, 2019, 09:51:05 am
@avra

Thanks for testing. Unfortunately I have no idea how to fix this issue, but I will try anyway.  :)  It looks like the internal package system not working properly. I don't think this issue is OPM related, OPM only triggers the error by installing multiple packages.
Can you please check if the same issue persist with Lazarus Trunk/ FPC  3.0.4?  If not, then something has changed in trunk since 2.0.2.
Title: Re: Online Package Manager
Post by: af0815 on July 27, 2019, 01:14:41 pm
I haVe seen such errors without OPM. By me it was triggered by changes in chmhelppackage.
Title: Re: Online Package Manager
Post by: wp on July 27, 2019, 01:50:29 pm
Which changes? The most recent changes in folder components/chmhelp happened on May 14 (just po files) and April 18 ("IDE: fixed uninitialized result, issue 35411, from Ondrej"), but undone on the same day.
Title: Re: Online Package Manager
Post by: af0815 on July 27, 2019, 02:12:49 pm
I will say, it is mit OPM related. The incompatible ppu error happens without any relationship tp OPM.
Title: Re: Online Package Manager
Post by: avra on July 27, 2019, 11:04:56 pm
Can you please check if the same issue persist with Lazarus Trunk/ FPC  3.0.4?
I just checked and it is there. It looks like it shows at the exact same place as previously shown. If it didn't show Lazarus version then you could think it was the same screenshot.

Workaround I offered does not work on FPC 3.0.x but works on 3.2.0. It might be a weak clue...
Title: Re: Online Package Manager
Post by: jmpessoa on August 13, 2019, 11:00:15 pm

Hi, GetMem!

Can you, please,  update t"LAMW" packages to  "version 0.8.5"  ?

ref.   https://github.com/jmpessoa/lazandroidmodulewizard

Thank you!
Title: Re: Online Package Manager
Post by: balazsszekely on August 14, 2019, 07:40:35 am

Hi, GetMem!

Can you, please,  update t"LAMW" packages to  "version 0.8.5"  ?

ref.   https://github.com/jmpessoa/lazandroidmodulewizard

Thank you!
Done. Thanks for the new version.
Title: FortesReport CE upgrade please
Post by: patyi on August 14, 2019, 06:11:01 pm
Hi !
Please upgrade FortesReport CE package as it does not work with Lazarus 2.0.5 / FPC 3.0.5 (fixes) installed from OPM.
It works correctly when downloaded and installed latest version from GitHub !

My system is XUbuntu 18.0.4.3 LTS 64bit, Lazarus 2.0.5/FPC 3.0.5 Fixes 64bit, installed with FpcUpDelux, crosscompile for Win32, Win64 and Linux 32.
Title: Re: Online Package Manager
Post by: lainz on August 16, 2019, 01:44:32 am
Hi @GetMem, can you update BGRAControls and BGRABitmap? i'm not incognito this time  8-)
Title: Re: Online Package Manager
Post by: balazsszekely on August 16, 2019, 07:29:12 am
@patyi, @lainz
I updated the packages. Thanks for the new version.
Title: Re: Online Package Manager
Post by: wp on August 16, 2019, 01:59:05 pm
Using OPM, I recently saw warnings appearing when the used Laz/FPC is not meeting the requirements of a package to be installed. That's fine. On the other hand, many packages are poorly maintained and certainly will not update their requirement list whenever a new fpc/Laz is released. But ok - there is an option to install anyway, it will appear a bit scary for a novice user, though.

My question is: Up to which version level is the Laz/fpc version checked? I had specified for all (?) my packages the Laz versions as "1.8.0, 1.8.2, 1.8.4, 2.0.0, 2.0.2, trunk". Now, with the release of v2.0.4 the list is not complete. I wanted to check whether the version warning appears when installing fpspreadsheet (which does not yet list 2.0.4 as a requirement) - it installs fine, without the warning.

So, does this mean that the last version number is not evaluated? I would appreciate that: It would free the component writers (and you) from update their packages upon a minor version Laz/FPC change which most probably would not have any effect at all. In this case, the version requirements could be shortened as "1.8.x, 2.0.x, trunk".
Title: Re: Online Package Manager
Post by: balazsszekely on August 16, 2019, 06:55:13 pm
@wp
Quote
Using OPM, I recently saw warnings appearing when the used Laz/FPC is not meeting the requirements of a package to be installed. That's fine.
Actually it's a feature requested by you(if I remember correctly).  :) A good one by the way.

Quote
On the other hand, many packages are poorly maintained and certainly will not update their requirement list whenever a new fpc/Laz is released. But ok - there is an option to install anyway, it will appear a bit scary for a novice user, though.
When a new (sub)version of Lazarus/FPC is released, I will automatically add for each package the new version(in this case 2.0.4). So in theory the package maintainers don't have to do anything, unless the new (sub)version somehow breaks the package. I did not do it for 2.0.4(lack of time, sorry for this), it's now done in trunk. Please test. I also plan to remove previous version from the list. When a new major version appears, the 1.8.x series will be removed. I don't think is worth supporting more then 2 major release.  It would be an overkill for package maintainers.
Title: Re: Online Package Manager
Post by: lainz on August 17, 2019, 01:58:41 am
I faced a problem the first time trying to install the latest bgrabitmap lazarus 2.0.2 64 bit windows, first it displayed the version number as 9.9 instead of 10.5 in the list of packages to be installed, then an access violation showed when trying to download, so two errors.

I figured that I had installed a previous version, maybe the 9.9 in that lazarus release, so that is the number it displayed?

Well, then i removed my installation, and installed 2.0.4 64 bit windows, and then everything went fine.

I know is very tricky to install bgrabitmap and bgracontrols sometimes, so I share my experience here. this time a clean installation was needed, but I used OPM to update and it was working well, so maybe is just coincidence.
Title: Re: Online Package Manager
Post by: jmpessoa on August 18, 2019, 06:09:17 am

Hi, GetMem!


[my apologies]

Can you, please,  update "LAMW" packages to  "version 0.8.5",  again....

I just fixed  a critical issue!  [thanks to @DanielTimelord]

ref.   https://github.com/jmpessoa/lazandroidmodulewizard

Thank you!
Title: Re: Online Package Manager
Post by: balazsszekely on August 18, 2019, 07:24:09 am
@lainz
Next time you see a similar error please do the following. Download the packages with the download button, then try a manual installation. I'm curious if the same error occurs.

@jmpessoa
I updated LAMW. Thanks for the new version.
Title: Re: Online Package Manager
Post by: lainz on August 18, 2019, 09:10:39 pm
Ok, I will do.  :)
Title: Re: Online Package Manager
Post by: AFFRIZA 亜風実 on August 19, 2019, 06:26:28 am
I have an FPC 3.3.1, I tried to download and install, download and install manually, and clean all. Still, I got this PPU checksum error. What should I do?  :o

Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on August 19, 2019, 06:55:10 am
Hi Dio Affriza,

Did you try this workarund by @avra: https://forum.lazarus.freepascal.org/index.php/topic,43646.msg326093.html#msg326093
FPC 3.3.1 is not yet officially supported.
Title: Re: Online Package Manager
Post by: AFFRIZA 亜風実 on August 19, 2019, 07:22:46 am
Hi Dio Affriza,

Did you try this workarund by @avra: https://forum.lazarus.freepascal.org/index.php/topic,43646.msg326093.html#msg326093
FPC 3.3.1 is not yet officially supported.
Thank you, GetMem. I'll try that.  :)
Title: Re: Online Package Manager
Post by: balazsszekely on September 04, 2019, 01:45:10 pm
@avra

As a desperate attempt to fix the "incompatible ppu" error, I added in r. 61813 an extra compiling flag(pcfCompileDependenciesClean). The results are promissing. Can you please run a few test with Lazarus trunk/FPC 3.0.4?
Title: Re: Online Package Manager
Post by: avra on September 04, 2019, 03:36:53 pm
As a desperate attempt to fix the "incompatible ppu" error, I added in r. 61813 an extra compiling flag(pcfCompileDependenciesClean). The results are promissing. Can you please run a few test with Lazarus trunk/FPC 3.0.4?
I will test and report. Thanks!
Title: Re: Online Package Manager
Post by: avra on September 07, 2019, 03:27:29 am
Unfortunately, incompatible PPU bug strikes again.  :'(

Tested on Win10x64, 32bit FPC 3.0.4 and Lazarus trunk.

UPDATE: Immediately after this I tried "Clean Common Files" and it didn't help as expected. If I remember well, that workaround helps only on FPC 3.2.0+ so no surprise it didn't work on 3.0.4. If you want, I can test Lazarus trunk with FPC 3.2.0 or trunk, to see if it helps there.
Title: Re: Online Package Manager
Post by: balazsszekely on September 09, 2019, 06:16:04 am
Quote
Unfortunately, incompatible PPU bug strikes again.  :'(

Tested on Win10x64, 32bit FPC 3.0.4 and Lazarus trunk.

UPDATE: Immediately after this I tried "Clean Common Files" and it didn't help as expected. If I remember well, that workaround helps only on FPC 3.2.0+ so no surprise it didn't work on 3.0.4. If you want, I can test Lazarus trunk with FPC 3.2.0 or trunk, to see if it helps there.
Thanks avra. Unfortunately I'm out of ideas. The worst part is, I don't know if OPM, Lazarus or FPC is causing the issues.
Title: Re: Online Package Manager
Post by: avra on September 09, 2019, 08:25:25 am
Thanks avra. Unfortunately I'm out of ideas.
Thank you for your effort. I still hope that it will work on FPC 3.2.0+. I didn't have time to try it since I am in the middle of some embedded stuff, but it is on my TODO list.

The worst part is, I don't know if OPM, Lazarus or FPC is causing the issues.
When I face this problem again, do you think that I should try to install packages again manually in hope to reveal if it has anything to do with OPM?

Btw. I think it's a little odd to be notified before installation that packages are not compatible with user's Laz+Fpc combo. I would prefer that instead of this, OPM says something like packages have not been tested on that combination. It's a little less scary message.  ;)
Title: Re: Online Package Manager
Post by: balazsszekely on September 10, 2019, 05:46:12 am
Quote
When I face this problem again, do you think that I should try to install packages again manually in hope to reveal if it has anything to do with OPM?
Yes please. It would be really helpful.
 
Quote
Btw. I think it's a little odd to be notified before installation that packages are not compatible with user's Laz+Fpc combo. I would prefer that instead of this, OPM says something like packages have not been tested on that combination. It's a little less scary message. 
Thanks for the suggestion. Done in r.61850. Please test. As a side note, the dialog can be disabled from option. It won't show up, even when you try to install an untested packages.
Title: Re: Online Package Manager
Post by: avra on September 12, 2019, 04:45:41 am
I have tested and these are my findings:

Good:
In such tests I usually install packages in groups of 1-2 letters, like first all starting with A and B, then all starting with letters C and D, etc. This time I have reached P before incompatible PPU stroke again. I do not think I have ever reached this far without applying the workaround. Impression is that I have been able to install 2-3 times more components then usual. Of course, there are some components that do not work but I just skip them since they do suffer from compatibility problem, not from PPU problem. After I faced the PPU problem, my workaround worked and I could continue.

Bad:
I did not measure, but my subjective impression is that compilation is now much, much longer. Like IDE and all components are compiling again whenever I have new group of components for installation. That might not be that bad if you select everything and just select to skip all errors, but I installed in group of 1-2 letters and that increased time exponentially (subjective time evaluation). After half of the letters were installed, I had to let it install and do something else and only check from time to time if it finished or showed an error. It was thaaat long. Another bad thing is that some component near the end of the alphabet breaks the Lazarus completely and it can be started only if you rename lazarus.old.exe to lazarus.exe. I will see if I can identify problematic component, since that is not good at all. Imagine poor newbie who didn't make a backup and he can not start Lazarus any more...

Conclusion:
I do not have a definite opinion about your PPU fix put into OPM. I think I can compile much more then before without PPU error striking, but it seams to make compilation much longer. I think I would prefer OPM without it, but I am not 100% sure. I really think that someone from the core team should take a look at PPU problem, and I have already tried with bug tracker but it made no difference. Bug can be repeated but you have to spend several hours just to come into position to catch it, and it strikes. Like a hot potato no one likes to hold in his hands.

Quote
When I face this problem again, do you think that I should try to install packages again manually in hope to reveal if it has anything to do with OPM?
Yes please. It would be really helpful.
After PPU problem I tried to manually install already downloaded package which had reported incompatible PPU and error was the same so I could not install. After manual workaround everything compiled and I could continue.
 
Quote
Btw. I think it's a little odd to be notified before installation that packages are not compatible with user's Laz+Fpc combo. I would prefer that instead of this, OPM says something like packages have not been tested on that combination. It's a little less scary message. 
Thanks for the suggestion. Done in r.61850. Please test. As a side note, the dialog can be disabled from option. It won't show up, even when you try to install an untested packages.
Nice. Thanks!
Title: Re: Online Package Manager
Post by: balazsszekely on September 12, 2019, 09:58:30 am
@avra
Thanks for testing.

Quote
Good:
In such tests I usually install packages in groups of 1-2 letters, like first all starting with A and B, then all starting with letters C and D, etc. This time I have reached P before incompatible PPU stroke again. I do not think I have ever reached this far without applying the workaround. Impression is that I have been able to install 2-3 times more components then usual. Of course, there are some components that do not work but I just skip them since they do suffer from compatibility problem, not from PPU problem. After I faced the PPU problem, my workaround worked and I could continue.
That's promising, but not good enough in my opinion. If the ppu bug is still clearly reproducible, we have to find another solution. I have no more ideas though.   :(

Quote
Bad:
I did not measure, but my subjective impression is that compilation is now much, much longer. Like IDE and all components are compiling again whenever I have new group of components for installation. That might not be that bad if you select everything and just select to skip all errors, but I installed in group of 1-2 letters and that increased time exponentially (subjective time evaluation). After half of the letters were installed, I had to let it install and do something else and only check from time to time if it finished or showed an error. It was thaaat long.
Yes. Dependencies are always recompiled, so the over all compile time is much bigger.

Quote
Conclusion:
I do not have a definite opinion about your PPU fix put into OPM. I think I can compile much more then before without PPU error striking, but it seams to make compilation much longer.
I will write to the developer list. Let's hope somebody has a better idea.

Quote
Bug can be repeated but you have to spend several hours just to come into position to catch it, and it strikes. Like a hot potato no one likes to hold in his hands.
:D True. I only catched the ppu bug a few times. Apparently my system is almost immune somehow. Perhaps depends on the fpc config too.

Quote
After PPU problem I tried to manually install already downloaded package which had reported incompatible PPU and error was the same so I could not install. After manual workaround everything compiled and I could continue.
I always suspected that OPM only triggers the error, by trying to compile multiple packages with dependencies between them.
Title: Re: Online Package Manager
Post by: avra on September 12, 2019, 12:08:59 pm
Thanks for testing.
You're most welcome.

Quote
If the ppu bug is still clearly reproducible, we have to find another solution.
I agree. You should probably remove fix from trunk.

Quote
I will write to the developer list. Let's hope somebody has a better idea.
Please do and point them to this message. Here is the summary of "Incompatible PPU" bug:

My latest test was on LAZ trunk and FPC trunk. Before that with LAZ trunk and FPC 3.2.0. All the same. It was also tested with official LAZ, and also with LAZ fixes and FPC fixes and the only difference is that I had to patch FPC 3.0.4 or 3.0.5 first to remove 2GB Win32 limit because that limit was hitting before PPU bug showed. All tests were run on Win10x64 and all tested LAZ and FPC were 32bit.
Title: Re: Online Package Manager
Post by: avra on September 13, 2019, 09:52:37 am
point them to this message
You can mention to them that if needed I can archive the whole fpcupdeluxe directory and put it on some file sharing service. Last time I tried 7z file size was more then 600MB. Archive just needs to be extracted to C:\ and started with the shortcut already in the directory and IDE will start.

That should make testing less time consuming...
Title: Re: Online Package Manager
Post by: balazsszekely on September 13, 2019, 11:33:58 am
@avra

I sent the message to the mailing list with your description, I also removed the fix from trunk.
Title: Re: Online Package Manager
Post by: avra on September 13, 2019, 01:29:42 pm
I sent the message to the mailing list with your description, I also removed the fix from trunk.
Thanks. I appreciate it.
Title: Re: Online Package Manager
Post by: balazsszekely on September 13, 2019, 04:12:04 pm
Good news. We got help from  a more experienced core member. Invalid ppu is just a generic messages, to find out more info, we have to compile FPC with: -vut .
Possible reasons for invalid ppu message:
- a package does not have a distinct output directory.
- packages sharing source or output directories.
- include files with same name.
- bug in FPC.
Title: Re: Online Package Manager
Post by: avra on September 15, 2019, 01:01:50 am
I have opened another thread for Incompatible PPU problem:
https://forum.lazarus.freepascal.org/index.php/topic,46755.0.html

It will be better to continue related discussion there.
Title: Re: Online Package Manager
Post by: Soner on October 14, 2019, 05:22:09 pm
Online Package Manager has small bug.
1) Klick on Homepage from one package. i.e. KControls.
Your browser opens KCOntrols homepage.
2) NOw klick on Home from one package that has not home page (url is empty) i.e. Kasttoolbar
It opens home page from previous package.
--> it should not open any homepage, because the url is empty.
Title: Re: Online Package Manager
Post by: balazsszekely on October 17, 2019, 05:44:43 pm
@Soner
Quote
Online Package Manager has small bug.
Thanks for reporting it. Fixed in r. 62068. Please test.
Title: Re: Online Package Manager
Post by: marsupilami79 on October 24, 2019, 09:04:32 am
Hello GetMem,

Zeos has released version 7.2.6 - which is a bugfix release for the 7.2 series of Zeos. Could you please update OPM?

Best regards,

Jan
Title: Re: Online Package Manager
Post by: balazsszekely on October 24, 2019, 02:03:40 pm
Hello Jan,

Quote
Zeos has released version 7.2.6 - which is a bugfix release for the 7.2 series of Zeos. Could you please update OPM?
Done. Thanks for the new version.

Best regards
Title: Re: Online Package Manager
Post by: Soner on October 30, 2019, 08:07:21 pm
@Soner
Quote
Online Package Manager has small bug.
Thanks for reporting it. Fixed in r. 62068. Please test.
Fixed in Lazarus svn-version.
Not fixed in Lazarus_2.0_fixes_branch (upcoming Lazarus 2.0.6 version). Maybe the developers will merge your changes in the 2.0.8
Title: Re: Online Package Manager
Post by: balazsszekely on November 04, 2019, 06:10:02 am
@Soner

Sorry for the late response.

Quote
Not fixed in Lazarus_2.0_fixes_branch (upcoming Lazarus 2.0.6 version). Maybe the developers will merge your changes in the 2.0.8
The fix is now in the merge request for 2.0.8. See here:
https://wiki.freepascal.org/Lazarus_2.0_fixes_branch#Submitted_by_developer_.2F_committer.2C_tested.2C_waiting_to_be_merged
Title: Re: Online Package Manager
Post by: lainz on November 06, 2019, 02:47:59 pm
Hi, I'm not sure if fixed in trunk, but when I search for a package like bgrabitmap in 2.0.6, then search for bgracontrols and click on install, it tries to install bgracontrols but not bgrabitmap first.. seems that when the search is filled with something it only takes into account the displayed packages and not all the checked ones.
Title: Re: Online Package Manager
Post by: zeljko on November 06, 2019, 04:58:03 pm
Seem that lclextensions package is not in sync with lazarus/components/lclextensions package for some reason.
include/qt5 is missin at all in opkman (installed fixes_3_2 and lazarus trunk via fpcupdeluxe on ubuntu 19.10, qt5 won't build because of missing include/qt5 dir which exists in lazarus/components/lclextensions/include
Title: Re: Online Package Manager
Post by: balazsszekely on November 06, 2019, 07:29:53 pm
@lainz
Quote
Hi, I'm not sure if fixed in trunk, but when I search for a package like bgrabitmap in 2.0.6, then search for bgracontrols and click on install, it tries to install bgracontrols but not bgrabitmap first.. seems that when the search is filled with something it only takes into account the displayed packages and not all the checked ones.
Most likely you have an old BGRABitmap folder in the local repository. Since BGRABitmap  is a runtime package and is present in the local repository, the IDE thinks that all BGRAControls dependencies are met, so OPM won't try to download/install BGRABitmap. When you wish to install a new version of BGRABitmap/BGRAControls, please uninstall the packages first, then press the "Cleanup" button, which will remove any old version from the local repository.

I did run a few tests(initially BGRABitmap and BGRAControls are not installed). I only checked BGRAControls, OPM works as it should(see screenshot).
If it's time to update the packages, please let me know. Thanks for the feedback.


Title: Re: Online Package Manager
Post by: balazsszekely on November 06, 2019, 07:36:24 pm
@zeljko
Quote
Seem that lclextensions package is not in sync with lazarus/components/lclextensions package for some reason.
include/qt5 is missin at all in opkman (installed fixes_3_2 and lazarus trunk via fpcupdeluxe on ubuntu 19.10, qt5 won't build because of missing include/qt5 dir which exists in lazarus/components/lclextensions/include
The only reason why lclextension is still in OPM, is because VirtualTreeView_5x(also in OPM) depends on it. However I don't see any reason why lclextension from OPM cannot be synchronized with lclextension from trunk. So I just did it. Thanks for the feedback.
Title: Re: Online Package Manager
Post by: lainz on November 06, 2019, 08:30:21 pm
Most likely you have an old BGRABitmap folder in the local repository. Since BGRABitmap  is a runtime package and is present in the local repository, the IDE thinks that all BGRAControls dependencies are met, so OPM won't try to download/install BGRABitmap. When you wish to install a new version of BGRABitmap/BGRAControls, please uninstall the packages first, then press the "Cleanup" button, which will remove any old version from the local repository.

I did run a few tests(initially BGRABitmap and BGRAControls are not installed). I only checked BGRAControls, OPM works as it should(see screenshot).
If it's time to update the packages, please let me know. Thanks for the feedback.

Hi, it was in a VM with a fresh install of lazarus, running opm for the first time, the exact steps was:
- Searching bgrabitmap, check package for install, clean search
- Searching bgracontrols, check package for install, --> not clean search -<<, then install from repository, it was installing bgracontrols first

What I did next the error: I just cleared the search box and clicked on install again, and it started downloading bgrabitmap first.

I think if you cant reproduce is a bug on my system, people is reporting a lot of issues with any program and ubuntu 19.10, so it can be a specific problem there.

You can update if you want, circular did a tool that updates the json file automatically, so every time I release a new bgracontrols it updates the json for opm too, so I never forget it =)
Title: Re: Online Package Manager
Post by: sierdolg on November 19, 2019, 01:36:58 pm
I noticed today that RichMemo installed via OPM did not work (on Lazarus 2.0.7 r62238M FPC 3.0.4 x86_64-linux-gtk2).

All you have to test is:
The application will start, but will throw an exception class 'RunError(219)' in file 'gtk2/gtkwscusommemo.inc' at line 392 as soon as you close the form.

And here for the good news: if you install the package from https://havefunsoft.com/share/richmemo.zip instead, it will work.

Maybe this clue is useful to some people; I unfortunately don't know better where to report the error (which seems to be just a missing update).
Title: Re: Online Package Manager
Post by: balazsszekely on November 19, 2019, 02:08:10 pm
@sierdolg
Quote
I noticed today that RichMemo installed via OPM did not work (on Lazarus 2.0.7 r62238M FPC 3.0.4 x86_64-linux-gtk2).

All you have to test is:
create an empty new project
put a RichMemo on the form
compile it without wrtiting further code.
The application will start, but will throw an exception class 'RunError(219)' in file 'gtk2/gtkwscusommemo.inc' at line 392 as soon as you close the form.

And here for the good news: if you install the package from https://havefunsoft.com/share/richmemo.zip instead, it will work.

Maybe this clue is useful to some people; I unfortunately don't know better where to report the error (which seems to be just a missing update).

Thanks. I updated the package in OPM.
Title: Re: Online Package Manager
Post by: lainz on November 26, 2019, 01:53:51 pm
Hi, please add this package
https://github.com/r3code/lazarus-exception-logger
Title: Re: Online Package Manager
Post by: lainz on December 01, 2019, 04:30:09 pm
Hi GetMem, can you remove two packages
- BGRAControlsFX
- MaterialDesign

The first one is not maintained anymore, and I received feedback that it doesn't works as expected.
The second is merged with BGRAControls, is just a single control so there's no reason to keep it alone.

Users should migrate to bgracontrols in both cases.
Title: Re: Online Package Manager
Post by: balazsszekely on December 01, 2019, 09:15:45 pm
@lainz

Sorry for the late response. Somehow I did not noticed your post. I added the exception logger and removed BGRAControlsFX, MaterialDesign. Thanks for the feedback.
Title: Re: Online Package Manager
Post by: Renat.Su on December 04, 2019, 08:47:04 pm
Perhaps I do not quite understand how onlinepackagemanager works, but, for example, the pascaltz package is outdated. There is a new version and in the OPM package https://raw.githubusercontent.com/dezlov/PascalTZ/master/opm/update.json
(it is not my package)
Title: Re: Online Package Manager
Post by: balazsszekely on December 04, 2019, 09:37:54 pm
Perhaps I do not quite understand how onlinepackagemanager works, but, for example, the pascaltz package is outdated. There is a new version and in the OPM package https://raw.githubusercontent.com/dezlov/PascalTZ/master/opm/update.json
(it is not my package)
If you have PascalTZ 2.1.1.0 installed, you can directly update to 2.1.3.0 from the package maintainer's webpage. See screenshot for more details.



Title: Re: Online Package Manager
Post by: Renat.Su on December 05, 2019, 04:31:12 am
Perhaps I do not quite understand how onlinepackagemanager works, but, for example, the pascaltz package is outdated. There is a new version and in the OPM package https://raw.githubusercontent.com/dezlov/PascalTZ/master/opm/update.json
(it is not my package)
If you have PascalTZ 2.1.1.0 installed, you can directly update to 2.1.3.0 from the package maintainer's webpage. See screenshot for more details.
Thanks!
Title: Re: Online Package Manager
Post by: AlexTP on December 10, 2019, 10:49:41 am
Can we include JPPack?
https://github.com/jackdp/JPPack
I am not sure it can be auto installed and auto compiled, coz it has some dependancies (PNG etc).
Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2019, 11:50:46 am
@Alextp
Quote
Can we include JPPack?
https://github.com/jackdp/JPPack

The package does not compile with Lazarus Trunk/FPC 3.0.4.
Title: Re: Online Package Manager
Post by: franciscoluiz on December 10, 2019, 01:09:35 pm
@Alextp
Quote
Can we include JPPack?
https://github.com/jackdp/JPPack

The package does not compile with Lazarus Trunk/FPC 3.0.4.

@GetMem, in the Online Package Manager configuration JSON file, there are a few properties that do just that, such as: LazCompatibility, FPCCompatibility, SupportedWidgetSet...

Title: Re: Online Package Manager
Post by: balazsszekely on December 10, 2019, 02:21:57 pm
@franciscoluiz
Quote
in the Online Package Manager configuration JSON file, there are a few properties that do just that, such as: LazCompatibility, FPCCompatibility, SupportedWidgetSet...
I'm aware of that, however in order to add it to OPM, I need at least one Lazarus/FPC version where the package is functional. It does not seems to work with the following combinations: Lazarus 2.0.x, Lazarus Trunk/FPC 3.0.4, FPC 3.2.0, FPC trunk. Do you have more information?
Title: Re: Online Package Manager
Post by: wp on December 10, 2019, 03:04:13 pm
I cloned the JPPack, and can confirm that it does not compile with Laz trunk / FPC 3.0.4. OK - the author requires FPC 3.3.1 (it is a bad idea to tie a package of general interest to the latest FPC version).

The main problem, however, is that the package depends also on "JPLib", another library of routines of the same author. It can be found on the author's github site but there is no Lazarus package. Since these libraries are actively maintained by their author it does not make sense that somebody of the Lazarus team takes responsibility to make them available in OPM.

Alextp, if you are interested in having these components available get in touch with their author and ask him to follow the Lazarus standards (i.e., provide a package, no pollution of search path as in Delphi). I am sure the FPC version issue can be handled by a few "IF FPC_FullVersion" checks I would say: minimum requirement is the current FPC release version.
Title: Re: Online Package Manager
Post by: af0815 on December 17, 2019, 09:08:01 am
laz_synapeV40.1 is actual not useable on a RasPi (3B+) for me

*) in jedi.inc {$ASMMODE Intel} is used. It should be souronded with a {$IFDEF MSWINDOWS}

*) in synases a lot of Identfiers are not found -> this is an very very old issue (eg. https://sourceforge.net/p/synalist/bugs/43/ and here in the forum).

it looks like Synaser is not maintained for a longer time.
Title: Re: Online Package Manager
Post by: guest64953 on December 17, 2019, 11:22:16 am
Castle Game Engine failed to install via OPM. I installed OPM from onlinepackagemanager.lpk shipped with Lazarus. I'm running on OpenIndiana. Castle failed to compile. Both Lazarus and FPC are trunk, using Fpcupdeluxe.
Title: Re: Online Package Manager
Post by: balazsszekely on December 17, 2019, 11:54:52 am
@af0815
Quote
laz_synapeV40.1 is actual not useable on a RasPi (3B+) for me
Did you try to report the bug here: http://www.ararat.cz/synapse/doku.php/support ? AFAIK this is the official page. If the bug is fixed, I can update OPM with the latest version.

@hunghung
Quote
Castle Game Engine failed to install via OPM. I installed OPM from onlinepackagemanager.lpk shipped with Lazarus. I'm running on OpenIndiana. Castle failed to compile. Both Lazarus and FPC are trunk, using Fpcupdeluxe.
OPM usually targets stable version of Lazarus/FPC, currently Lazarus 2.0.x and FPC 3.0.4. I don't mind adding packages with trunk support, however you have to contact the package maintainer for this. Please try the following link: https://castle-engine.io/talk.php
Title: Re: Online Package Manager
Post by: guest64953 on December 17, 2019, 11:59:14 am
@hunghung
Quote
Castle Game Engine failed to install via OPM. I installed OPM from onlinepackagemanager.lpk shipped with Lazarus. I'm running on OpenIndiana. Castle failed to compile. Both Lazarus and FPC are trunk, using Fpcupdeluxe.
OPM usually targets stable version of Lazarus/FPC, currently Lazarus 2.0.x and FPC 3.0.4. I don't mind adding packages with trunk support, however you have to contact the package maintainer for this. Please try the following link: https://castle-engine.io/talk.php

Thanks for clarify this  :)
Title: Re: Online Package Manager
Post by: af0815 on December 17, 2019, 12:45:14 pm
@af0815
Quote
laz_synapeV40.1 is actual not useable on a RasPi (3B+) for me
Did you try to report the bug here: http://www.ararat.cz/synapse/doku.php/support ? AFAIK this is the official page. If the bug is fixed, I can update OPM with the latest version.
It is (first) reported (on the official synalist, descibed on the supportpage) since 20.2.2013 !!! https://sourceforge.net/p/synalist/mailman/message/30510767/

I think it will never maintained.

Title: Re: Online Package Manager
Post by: AlexTP on December 26, 2019, 10:43:04 pm
macOS Metal API framework (I cannot test):
https://github.com/genericptr/Metal-Framework/tree/master/lazarus/package
Title: Re: Online Package Manager
Post by: jacekpazera on January 17, 2020, 04:48:18 am
The last news from JPPack:
Created JPLib package for Lazarus and CodeTyphon.
Compatibility with FPC 3.0.2 and newer.

Works OK on Lazarus 1.6.4 + FPC 3.0.2, Lazarus 2.0.6 + FPC 3.0.4, Lazarus 2.0.7 + FPC 3.3.1, CodeTyphon 7.00
Title: Re: Online Package Manager
Post by: balazsszekely on January 17, 2020, 05:21:49 am
@jacekpazera
Quote
The last news from JPPack:
Created JPLib package for Lazarus and CodeTyphon.
Compatibility with FPC 3.0.2 and newer.

From where I can download the source? A quick google search did not reveal anything.
Title: Re: Online Package Manager
Post by: GAN on January 17, 2020, 05:55:18 am
With DuckDuckGo https://duckduckgo.com/?q=JPPack (https://duckduckgo.com/?q=JPPack)

http://www.pazera-software.com/dev/jppack-components/ (http://www.pazera-software.com/dev/jppack-components/)

And package for Lazarus: https://github.com/jackdp/JPPack/tree/master/packages/Lazarus (https://github.com/jackdp/JPPack/tree/master/packages/Lazarus)
Title: Re: Online Package Manager
Post by: jacekpazera on January 17, 2020, 06:11:19 am
JPLib: https://github.com/jackdp/JPLib
Lazarus package: https://github.com/jackdp/JPLib/tree/master/packages/Lazarus
       
JPPack: https://github.com/jackdp/JPPack
Lazarus package: https://github.com/jackdp/JPPack/tree/master/packages/Lazarus
Title: Re: Online Package Manager
Post by: balazsszekely on January 17, 2020, 06:54:15 am
Thanks. I added the packages to OPM. Two more questions:
1. In the JPPack documentation is mentioned that JPPack depends on PNGComponents(https://bitbucket.org/uweraabe/pngcomponents), however I cannot find a lazarus package for pngcomponents. I'm I missing something? After a quick try JPPack works fine without pngcomponents.
2. JPPack is windows only or it works under Linux too?
Title: Re: Online Package Manager
Post by: jacekpazera on January 17, 2020, 08:20:21 am
PngComponents package is required only for Delphi.

I've made some corrections and now everything works fine on Linux (Xubuntu 18.04 + Lazarus 2.0.2 / FPC 3.3.1).
Title: Re: Online Package Manager
Post by: wp on January 21, 2020, 03:39:59 pm
GetMem, could you update the Industrial package? I just uploaded a new version to SourceForge (https://sourceforge.net/projects/lazarus-ccr/files/industrialstuff/industrialstuff-0.4.0.zip/download) which takes care of LCL scaling of the individual components and provides high-resolution icons for the component palette.
Title: Re: Online Package Manager
Post by: balazsszekely on January 21, 2020, 06:14:47 pm
GetMem, could you update the Industrial package? I just uploaded a new version to SourceForge (https://sourceforge.net/projects/lazarus-ccr/files/industrialstuff/industrialstuff-0.4.0.zip/download) which takes care of LCL scaling of the individual components and provides high-resolution icons for the component palette.

Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: anderbelluno on January 21, 2020, 06:57:39 pm
Hi Getman, i'm REST Dataware team, we have a new version on Source Forge repository,  you can update OPM please?
Title: Re: Online Package Manager
Post by: balazsszekely on January 21, 2020, 08:03:30 pm
Hi Getman, i'm REST Dataware team, we have a new version on Source Forge repository,  you can update OPM please?

I just did it. Thanks for the new version.
Title: Re: Online Package Manager
Post by: dbannon on February 12, 2020, 12:39:19 pm
What is the process for seeing packages in the OPM updated ?

My particular interest is in KControls and RichMemo, Both have had a number of recent updates but when I look at the OPM from within lazarus they are described as being up to date.

The OPM is such a great tool, I would hate have to use another model.

KControls in particular has moved to github and has had a couple of patches I sent in applied, I would like to be able to grab the "official" version to prove that work as expected.

Similarly, I would like to close some bug reports for RichMemo ....

Davo
Title: Re: Online Package Manager
Post by: balazsszekely on February 12, 2020, 01:54:41 pm
@dbannon

Usually OPM only supports the latest stable version of a particular package. There are a few exceptions from the rule. For example when the release cycle is slow, I do update the packages manually from time to time(ex: synapse, indy, etc...).
A package maintainer can "push" a newer, stable version of a package. If available, OPM can update from the maintainer's webpage(see screensot). In order for the update to work, the package developer must provide an json file. Approximatively 25% of the packages are using this feature.
Trunk version of a package is not supported in OPM, and for a good reason, the bugtracker would be flooded with invalid bugreports. Since third party packages are not related to Lazarus, the bugreports are annoying for the developers. Unfortunately it happened in the past.

PS: Since both KControls and RichMemo are stable packages, I can make an exception and update the central repository manually. When you're done with the bugfix please let me know. Also I need a link to the trunk versions:
https://github.com/kryslt/KControls/  (?)
https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/richmemo/ (?)


Title: Re: Online Package Manager
Post by: Thaddy on February 12, 2020, 02:19:44 pm
Usually OPM only supports the latest stable version of a particular package.
It allows you to build any combination. That is a feature. But  is not documented that you have to know how mix and match....
 This may be not correct for packages....
Title: Re: Online Package Manager
Post by: minesadorada on February 12, 2020, 02:33:00 pm
@getmem - have you any plans to implement the "star ratings" feature?
Title: Re: Online Package Manager
Post by: balazsszekely on February 12, 2020, 08:37:50 pm
@minesadorada
Unfortunately I don't have time. All I can do for now is update packages + small bug fixes.
Title: Re: Online Package Manager
Post by: dbannon on February 13, 2020, 03:28:50 am
Usually OPM only supports the latest stable version of a particular package.....
Very sensible !

PS: Since both KControls and RichMemo are stable packages, I can make an exception and update the central repository manually. When you're done with the bugfix please let me know. Also I need a link to the trunk versions:
https://github.com/kryslt/KControls/  (?)
https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/richmemo/ (?)

Thanks getmem (and thanks for maintaining OPM !).

KControls - no longer has a 'trunk' and 'release' version, for some time now, TK has been willing to apply patches such as mine but not engaging in any release process. So, yes, the place to go is https://github.com/kryslt/KControls and it does appear TK is not maintaining the JSON file there.

Now, https://github.com/kryslt/KControls/archive/master.zip (accessible from the Github "Clone or Download" button) is the correct download, the json file mentions https://github.com/kryslt/KControls/archive/1.7.3.zip which is quite out of date.

I will log a bug report with him, suggesting he manually update the 1.7.3.zip or change the json file to point to master.zip which is auto updated on each commit. Risky I know but given TK's reluctance to be more involved, our only option.

Richmemo
I confess some processes (SVN and CCR) here are a mystery to me.  https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/richmemo/ does appear to be 'trunk' and it appears to be automatically copied, daily (?) to https://havefunsoft.com/share/richmemo.zip - I guess you could consider that the release version (but auto copied ....?).

I have just manually tested both and both do incorporate the patches I have submitted. Both are quite sizeable so my tests would not possibly constitute a thorough test of either package.

Your call.

Davo
Title: Re: Online Package Manager
Post by: balazsszekely on February 13, 2020, 07:20:13 am
@dbannon
Quote
I have just manually tested both and both do incorporate the patches I have submitted. Both are quite sizeable so my tests would not possibly constitute a thorough test of either package.
Thanks. I updated both KControls and RichMemo in OPM.
Title: Re: Online Package Manager
Post by: dbannon on February 13, 2020, 09:09:03 am
Hmm, KControls shows up as "up to date" in my Lazarus OPM, even though the one installed is somewhat older, several commits, than the one the OPM is displaying. I guess because its still version 1.7.3.0 ?

I assume I can force a download and install of the new one, you have date stamped it so its easy to see it is the right one. 

Sad that we cannot make it clearer that you have a newer version in the OPM.  Does not worry me personally, I'm just one of those people who always want better 'processes'  :-)

Thanks Getmem, having to install manually (to do my tests) reminded me of just how good the Online Package Manager really is !

Davo
Title: Re: Online Package Manager
Post by: balazsszekely on February 13, 2020, 01:49:39 pm
@dbannon

Quote
Hmm, KControls shows up as "up to date" in my Lazarus OPM, even though the one installed is somewhat older, several commits, than the one the OPM is displaying. I guess because its still version 1.7.3.0 ?
Yes. OPM reads the version number from the central repository. If the version is the same as the locally installed  package version,  the "up to date" message is displayed. OPM does not care about revision numbers.

Quote
I assume I can force a download and install of the new one, you have date stamped it so its easy to see it is the right one. 
Yes.

Quote
Sad that we cannot make it clearer that you have a newer version in the OPM.
Actually we can. Please go to OPM->Options-->General, then uncheck the "Show regular icon for newly added packages after install" checkbox. After a reload you will see a blue lightning icon, which means: the package was modified in the last 31 days(31 is also customizable in the same place). You can also see the exact date of the last update(see screenshot).
If you ask why this option is not unchecked by default, the answer is it was in the past, but the blue lightning icon annoyed a few people, especially when appeared for installed packages.  So I had to make it optional and hide the lightning icon and date by default. :D
Title: Re: Online Package Manager
Post by: minesadorada on February 13, 2020, 02:12:46 pm
@Getmem - can you add Splashabout?
https://svn.code.sf.net/p/lazarus-ccr/svn/components/splashabout/splashabout.json (https://svn.code.sf.net/p/lazarus-ccr/svn/components/splashabout/splashabout.json)
https://svn.code.sf.net/p/lazarus-ccr/svn/components//splashabout/updates/update_splashabout.json (https://svn.code.sf.net/p/lazarus-ccr/svn/components//splashabout/updates/update_splashabout.json)
Making a json from a component via OPM is currently flawed, but I did the best I could.
Title: Re: Online Package Manager
Post by: avra on February 13, 2020, 02:46:54 pm
@GetMem:

Looking at screenshot from your last message (https://forum.lazarus.freepascal.org/index.php?action=dlattach;topic=34297.0;attach=35380), I find a little confusing naming a column "Repository". Would that be OPM's repository or author's repository? You gave an explanation in screenshot and also after some thinking someone might come to the correct conclusion by himself, but I do not find it clear enough. Instead of "Repository" and "External" column names I would suggest "OPM" and "External", or "OPM Repository" and "External Repository" if you like long names.
Title: Re: Online Package Manager
Post by: balazsszekely on February 13, 2020, 04:37:06 pm
@minesadorada
Quote
Getmem - can you add Splashabout?
Done. Thans for the new package.

Quote
Making a json from a component via OPM is currently flawed, but I did the best I could.
What do you mean? It works fine in my opinion. Line "UpdatePackageFiles", now is replaced with "UpdateLazPackage", because the classname has changed. Anyway this happened 2-3 years ago. Other then this, your json is exactly the same as a newly generated one. All you have to do is complete the download link and the version.


@avra
Quote
Looking at screenshot from your last message (https://forum.lazarus.freepascal.org/index.php?action=dlattach;topic=34297.0;attach=35380), I find a little confusing naming a column "Repository". Would that be OPM's repository or author's repository? You gave an explanation in screenshot and also after some thinking someone might come to the correct conclusion by himself, but I do not find it clear enough. Instead of "Repository" and "External" column names I would suggest "OPM" and "External", or "OPM Repository" and "External Repository" if you like long names.
Thanks for the suggestion. I renamed the columns to "OPM Repository" and "External Repository". I also added a long hint for a more detailed description. Please test with r62629.
Title: Re: Online Package Manager
Post by: avra on February 13, 2020, 06:07:14 pm
I renamed the columns to "OPM Repository" and "External Repository". I also added a long hint for a more detailed description. Please test with r62629.
Thanks. You're faster then light!  :D
Title: Re: Online Package Manager
Post by: coliv_aja on February 25, 2020, 02:03:49 pm
Can you please update virtualtreeview package. The one in opm repo doesn't have the high dpi scaling.
Title: Re: Online Package Manager
Post by: wp on February 25, 2020, 02:21:05 pm
I think the "official" version in Luiz' github (https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-v5) doesn't support high-dpi either. Use the version which comes with Lazarus instead (package laz.virtualtreeviewpackage).
Title: Re: Online Package Manager
Post by: balazsszekely on February 25, 2020, 02:30:59 pm
@wp
IIRC laz.virtualtreeviewpackage is only available in trunk and it's not compatible with previous stable versions like 2.0.6. Or perhaps you can install it in a stable version, but some features won't work?

@coliv_aja
If you wish to use the high dpi version, please switch to Lazrus trunk where it's installed by default. The version available in OPM is for historical purposes only, and it will be removed in the next major release.
Title: Re: Online Package Manager
Post by: wp on February 25, 2020, 02:49:16 pm
@wp
IIRC laz.virtualtreeviewpackage is only available in trunk and it's not compatible with previous stable versions like 2.0.6. Or perhaps you can install it in a stable version, but some features won't work?
Right, I forgot that it is in Laz trunk only. But I checked: no problem installing it into v2.0.6.
Title: Re: Online Package Manager
Post by: coliv_aja on February 26, 2020, 05:11:50 am
I'm using trunk. I'm aware it's renamed to laz.virtualtrees. but for existing project or a shared project with delphi it would be better to just keep the original name. And it's not just the package's name but the units name and the component itself got renamed. And I don't like this direction of renaming the existing library that still mantained. VTV is one of most common delphi component. The development is still going strong. And someday maybe there's people who will porting the v6 and later to lazarus. To not break the compability, please keep the name intact, so when there's v6 and later for lazarus people can just update the library without changing much to the main project. It's feel like you guys going codetyphon way which is not nice IMO.

@wp, Luiz's repo does have the high-dpi scaling. I usually always use Luiz's repo, but this time giving opm a go. But it break the dpi-awareness scaling. So I compare the sources, and it's different.
Title: Re: Online Package Manager
Post by: balazsszekely on February 26, 2020, 06:28:06 am
@coliv_aja
Quote
I'm using trunk. I'm aware it's renamed to laz.virtualtrees. but for existing project or a shared project with delphi it would be better to just keep the original name. And it's not just the package's name but the units name and the component itself got renamed. And I don't like this direction of renaming the existing library that still mantained. VTV is one of most common delphi component.
I'm afraid things are much more complicated then this. VTV(5.3.3) was added to Lazarus, because OPM depends on it. Initially we did not change the name, but then people started to complain about not being able to install other version like 4.8.x. When suggested to uninstall VTV 5.3.3 and OPM, they complained about the missing package manager. To satisfy everyone's needs, we renamed the package, this way it can coexists with any other installed VTV versions. As you probably know, the IDE does not like packages with the same name and for good reasons.
Since then a lot of improvment has been made to Laz.VTV, like:
- support for cocoa
- bugfix for linux arch
- high dpi support
- improved icons
- etc
The good news is, the vast majority of the changes was backported to Luiz's repo.
As you can see there is no ideal solution. If you whish to support both Lazarus and Delphi, just ignore the VTV inside Lazarus. Install the one available on github.

Quote
It's feel like you guys going codetyphon way which is not nice IMO.
This is not true. We never removed any license information and we always acknowledged Luiz as the package author. In fact, he is the one who suggested VTV 5.3.3 as the ideal candidate for Lazarus, and yes he was also worried about multiple, parallel VTV versions and synchronization between them. FOSS world is not an ideal one, many times you have to reach a compromise and find a mutually-acceptable solution.
Title: Re: Online Package Manager
Post by: wp on February 26, 2020, 10:41:52 am
@wp, Luiz's repo does have the high-dpi scaling. I usually always use Luiz's repo, but this time giving opm a go. But it break the dpi-awareness scaling. So I compare the sources, and it's different.
Yes, I forgot - 2 years is a long time...

So the point is that the VTV-v5 package distributed by OPM is not the same as the one in Luiz's "lazarus-v5" repo? If this is true we should update the OPM version.

And BTW, what is Luiz's "lazarus-master" branch? It does not contain the high-dpi additions.
Title: Re: Online Package Manager
Post by: coliv_aja on February 26, 2020, 10:44:26 am
I understand, since opm depend on it, so just let it be part of Lazarus as a fork. And let original VTV port as separate package. I'm just simply asking to update the VTV in opm repo. Since it's older than Luiz's repo. Shouldn't be a discussion which to use. Just update it or remove it if you don't want to maintain the original port in your opm repo.
Title: Re: Online Package Manager
Post by: coliv_aja on February 26, 2020, 11:09:34 am
@wp, Luiz's repo does have the high-dpi scaling. I usually always use Luiz's repo, but this time giving opm a go. But it break the dpi-awareness scaling. So I compare the sources, and it's different.
Yes, I forgot - 2 years is a long time...

So the point is that the VTV-v5 package distributed by OPM is not the same as the one in Luiz's "lazarus-v5" repo? If this is true we should update the OPM version.

And BTW, what is Luiz's "lazarus-master" branch? It does not contain the high-dpi additions.

Exactly. I'm simply asking to update the VTV in opm repo. Lazarus-master branch is VTV6. Luiz working on it some times ago but stopped further waiting for some features in fpc if I recall it correctly. Current Delphi VTV is at v7.
Title: Re: Online Package Manager
Post by: balazsszekely on February 26, 2020, 11:12:18 am
Quote
I understand, since opm depend on it, so just let it be part of Lazarus as a fork. And let original VTV port as separate package. I'm just simply asking to update the VTV in opm repo.
Ok fair enough. I updated the OPM version to match Luiz's github version(https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-v5).
A side note: since there are almost 200 packages in OPM and since I'm the only maintainer, I cannot constantly check each package for new versions.
Title: Re: Online Package Manager
Post by: wp on February 26, 2020, 12:26:49 pm
since there are almost 200 packages in OPM and since I'm the only maintainer, I cannot constantly check each package for new versions.
Absolutely, and I admire you how you are able to achieve all this.
Title: Re: Online Package Manager
Post by: coliv_aja on February 27, 2020, 12:20:59 am
Quote
I understand, since opm depend on it, so just let it be part of Lazarus as a fork. And let original VTV port as separate package. I'm just simply asking to update the VTV in opm repo.
Ok fair enough. I updated the OPM version to match Luiz's github version(https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-v5).
A side note: since there are almost 200 packages in OPM and since I'm the only maintainer, I cannot constantly check each package for new versions.

Thanks. I understand. I really appreciate your work.
That's why I request for an update since you can't always check every package by yourself.
Title: Re: Online Package Manager
Post by: coliv_aja on February 27, 2020, 01:23:13 am
Just some questions.
Does the Install "From third party repository" supposed to download from external link (JSON)?
When I'm trying to install BGRABitmap from third party repository it says no valid url found. While I can see it has a correct "DownloadZipURL".  BGRABitmap in OPM also need an update.

Also, can you cache the package list instead of downloading and parsing it all the times. I know the file is small, and I don't mind if it updated in the background. But OPM keep download and parsing the same file which takes a few seconds every time we open OPM.
I can see the server actually send "Last-modified" and "Etag" header that can be used to identify if the file has been modified. Simply stop to download the content if headers contains that header. Or send the http request with "If-Modified-Since: <last-modified>" or "If-None-Match: <etag>", server should respond with "304 Not modified" with no content if it match.

Another think is, can OPM accept IDE macros for its path like "ConfDir", "PrimaryConfigPath", "SecondaryConfigPath ". This is useful for portable lazarus in removable drive.
Title: Re: Online Package Manager
Post by: balazsszekely on February 27, 2020, 06:50:04 am
Quote
Does the Install "From third party repository" supposed to download from external link (JSON)?
OPM must check if each external link is valid and parse the version number from the remote files for later comparison. When enabled it does it automatically in the background, however the feature is disabled by default. A lot of people were worried that OPM does "work behind the back". Please go to "Options->General->Check for package update" and change from "Never" to something. After the links are parsed you should see the external version number in the "External Repository" column(see attachement), at this point you can install the package from the maintainer's web page.

Quote
When I'm trying to install BGRABitmap from third party repository it says no valid url found. While I can see it has a correct "DownloadZipURL".  BGRABitmap in OPM also need an update.
I must admit this message is obsolete and confusing, it was a valid message when the background search was enabled by default, but not now. I will fix it today, I will also update BGRABitmap.

Quote
Also, can you cache the package list instead of downloading and parsing it all the times. I know the file is small, and I don't mind if it updated in the background. But OPM keep download and parsing the same file which takes a few seconds every time we open OPM.
I can see the server actually send "Last-modified" and "Etag" header that can be used to identify if the file has been modified. Simply stop to download the content if headers contains that header. Or send the http request with "If-Modified-Since: <last-modified>" or "If-None-Match: <etag>", server should respond with "304 Not modified" with no content if it match.
This is a good idea. For slow internet connection, connecting to the server also takes time, maybe I should add a checkbox to Options, with the following text "Parse json from local source if available". If checked OPM doesn't attempt a connection and parse the file locally.
Unfortunately I never noticed the lag, the download and parsing is almost instantaneous for me.

Quote
Another think is, can OPM accept IDE macros for its path like "ConfDir", "PrimaryConfigPath", "SecondaryConfigPath ". This is useful for portable lazarus in removable drive.
OPM communicates with the IDE through the PackageEditingInterface and a lot of IDE specific paths are available.  For example "PrimaryConfigPath", "SecondaryConfigPath" are used by OPM itself.
Title: Re: Online Package Manager
Post by: balazsszekely on February 27, 2020, 11:51:36 am
@ coliv_aja

I did the following(please test with r. 62678):
1. Updated BGRABitmaps and BGRAControls
2. Improved the message related to third party repositories
3. Implemented the package list cashing. If available, now OPM can load the json from local source, but you must enable this feature in options, is disabled by default. After 25 load, OPM will attempt a live update. I can also make the number 25 configurable, but already to many options in OPM...

Title: Re: Online Package Manager
Post by: wp on March 22, 2020, 07:33:06 pm
I finally decided to release LazMapViewer, a component to display GoogleMaps, OpenStreetMaps etc.

GetMem, could you please add the package https://sourceforge.net/projects/lazarus-ccr/files/LazMapViewer/lazmapviewer-v0.2.zip/download to OPM? The json for updating from the external repo is here: https://sourceforge.net/projects/lazarus-ccr/files/LazMapViewer/OPM/update_lazmapviewer.json/download. Hopefully everything is correct...

And avra, could you remove pl_MapViewer from the candidates for ct2laz conversion?

There are still some issues here and there, but maybe wider spread via OPM helps to find motivated users who want to submit patches.
Title: Re: Online Package Manager
Post by: balazsszekely on March 22, 2020, 09:55:04 pm
@wp

I added LazMapViewer to OPM. Thanks for the new package.
Title: Re: Online Package Manager
Post by: wp on March 22, 2020, 10:05:56 pm
Thanks
Title: Re: Online Package Manager
Post by: dbannon on March 23, 2020, 02:37:35 am
Been thinking about having a play with wp's mapping toolkit for a awhile, if its made easy with onlinepackage manager, how about now ?  Errors, see attached images.
Davo
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 06:15:14 am
Hi Davo,

I can confirm the "ambiguous unit found" message, which is just a warning, however I cannot reproduce the error in the second screenshot. I tested both with windows and Linux(Lazarus trunk/FPC 3.0.4). What is the exact error message?   
Title: Re: Online Package Manager
Post by: dbannon on March 23, 2020, 06:36:22 am
Hmm, I don't know about any more messages other than the one shown in the attached image, is there a log file that might have more info ?

All I see is the message box saying "Cannot install package: "lazmapviewer_bgra.lpk"....

The background of the image shows that it was happy opening the package but was unable to compile.

I am using Linux, Lazarus 2.0.7 (fixes) and Ubuntu 18.04.

I guess I should be able to download directly and compile, just to make sure its not something wrong with my install ?   Can I manually compile the copy that onlinepackage manager has downloaded, that would be a better test ?

Davo
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 06:46:25 am
Quote
All I see is the message box saying "Cannot install package: "lazmapviewer_bgra.lpk"....
When the message appears, please click "No", then check the message window for more information.

Quote
I guess I should be able to download directly and compile, just to make sure its not something wrong with my install ?   Can I manually compile the copy that onlinepackage manager has downloaded, that would be a better test ?
Yes, but LazMapViewer depends on other packages, so you must install them first(BGRABitmap, RGBGraphics, Synapse). OPM automatically resolves the dependencies if you click "Yes to All".
Title: Re: Online Package Manager
Post by: dbannon on March 23, 2020, 08:57:25 am
OK, I have installed (via the OPM) all except the lazmapviewer_bgra.lpk.  And that went fine.

I allowed the rebuild and then went back into OPM, selected the missing sub package and tried again.

Again I got the message Cannot install .....

After clearing that, in the Lazarus messages window I find -

lazmapviewer_bgra.pas(11,5) Fatal: Cannot find LazarusPackageIntf used by lazmapviewer_bgra. Make sure all ppu files of a package are in its output directory. ppu in wrong directory=/home/dbannon/bin/Lazarus/fixes_2_0/packager/units/x86_64-linux/lazaruspackageintf.ppu. Clean up package "FCL"..

so, lets look in the directory the message mentions -
Code: Pascal  [Select][+][-]
  1. dbannon@dell:~/Pascal/libqt5pas$ ls -la /home/dbannon/bin/Lazarus/fixes_2_0/packager/units/x86_64-linux/
  2. total 60
  3. drwxr-xr-x 2 dbannon dbannon  4096 Feb 22 11:30 .
  4. drwxr-xr-x 4 dbannon dbannon  4096 Oct 16 10:59 ..
  5. -rw-r--r-- 1 dbannon dbannon   317 Feb 22 11:30 FCL.compiled
  6. -rw-r--r-- 1 dbannon dbannon  3560 Feb 22 11:30 fcllaz.o
  7. -rw-r--r-- 1 dbannon dbannon  1461 Feb 22 11:30 fcllaz.ppu
  8. -rw-r--r-- 1 dbannon dbannon 36088 Feb 22 11:30 lazaruspackageintf.o
  9. -rw-r--r-- 1 dbannon dbannon  3693 Feb 22 11:30 lazaruspackageintf.ppu

Its there. But is the message telling me that it should not be there ?  It says "ppu in wrong directory="
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 09:40:35 am
@davo

What is your FPC version? If FPC >= 3.2, installing dependent packages can be tricky. It has nothing to do with OPM, you can reproduce the issue by manual install(the infamous invalid ppu error). If your version is 3.0.4 unfortunately I have no idea what is causing the problem.
Title: Re: Online Package Manager
Post by: wp on March 23, 2020, 10:13:32 am
Just to make clear: The LazMapViewer package itself is self-contained, it exposes all functionality needed based on standard classes: the download is done by fphttpclient, and rendering is done by LazIntfImage - there is need to install the other packages. The add-on packages were motivated by user request or the history of the original mapviewer component, they provide alternative components to be hooked in for download (synapse) and rendering (RGBAGraphics oder BGRABitmap). It only makes sense to install these packages if the default behavior is not enough, and in fact, I do not see much difference, and rendering with BGRABitmap even seems to be worst of all (maybe/certainly the code can be improved - help is appreciated). Of course, for the add-ons the related packages must have been installed first.

GetMem, is there a way to control the behavior of OPM for this situation? AFAIK, all the sub-packages are checked in OPM for installation when the top-level checkbox is marked. I would prefer to have only LazMapViewer.lpk checked by default and leave the add-ons unchecked to indicate that they are not absolutely needed and do not provide new functionality.

dbannon, I am not sure if the ssl_openssl.pas and ssl_openssl_lib.pas units are correct here. AFAIK, they are not contained in the laz_synapse package, but needed for ssl access by synapse. I think the duplicate unit message occurs because you have these units somewhere else. Try to delete the units in the mapviewer installation, and the compilation should work (not tested). A package not containing all units required easily leads to this mess.

dbannon, I would appreciate if you could have a look at the usage of ssl in the standard package (unit mvdlefpc). I think it has the same issues that you reported for the corona program.
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 10:18:12 am
@wp
Quote
GetMem, is there a way to control the behavior of OPM for this situation? AFAIK, all the sub-packages are checked in OPM for installation when the top-level checkbox is marked. I would prefer to have only LazMapViewer.lpk checked by default and leave the add-ons unchecked to indicate that they are not absolutely needed and do not provide new functionality.
I can re-add LazMapViewer to OPM and only LazMapViewer.lpk will be visible, of course a user can install all the other packages manually, but it won't be visible in the package tree.
Title: Re: Online Package Manager
Post by: avra on March 23, 2020, 10:48:51 am
I finally decided to release LazMapViewer, a component to display GoogleMaps, OpenStreetMaps etc.
Thank you! I will drop related pl_MapViewer and pl_GeoGIS from next version of ct4laz.
EDIT: I have already dropped them. They have px_ prefix instead of pl_ prefix, which means they will be available only for manual download and not via OPM.

As for ssl_openssl_lib warning, it could be solved by either deleting that unit and referencing the same unit from Synapse (be careful since if I remember well original synapse lpk does not register ssl units by default), or to rename that and all other synapse originated units to avoid duplicates.
Title: Re: Online Package Manager
Post by: wp on March 23, 2020, 11:17:16 am
I can re-add LazMapViewer to OPM and only LazMapViewer.lpk will be visible, of course a user can install all the other packages manually, but it won't be visible in the package tree.
Yes I think this is better. Can you do this? Is there a possibility to add a note to the OPM description that there are add-on packages which must be installed manually? I think I will have to adjust the update.json and remove the other packages from it?
Title: Re: Online Package Manager
Post by: dbannon on March 23, 2020, 11:24:55 am

edit: sorry, getmem, I am using fpc3.0.4

OK, I have blown away my existing install of Lazarus and pulled down a fresh copy (because I find svn sometimes surprises me wrt overwriting my own hacks).  So, complete clean install. I try to install the map viewer before my usual favourites.

Same error.

@wp, yep, just installing the map viewer, it all goes sweetly.  No erros and the icons have appeared on my toolbar.  Be interesting to see if my downloads work.  I have found, in the past that not all sites require that (getmem's openssl) mod.

Would it make sense to split the package into two packages ??  The core package and, secondly, the collection of options  ?   Or just have the options unticked by default. I certainly thought I needed the full set, wp indicates thats not the case.

Davo

Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 11:44:21 am
@wp, @davo

OK. I updated OPM, by default only lazmapviewerpgk.lpk is visible. The info about the other packages is visible in the preview screen or community description. Please see attached images. wp if you wish to change the text, please let me know.

Ps: Fixed typo mannually.
Title: Re: Online Package Manager
Post by: wp on March 23, 2020, 11:59:56 am
Perfect. Do I have to update the update.json file?
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 12:09:58 pm
Quote
Perfect. Do I have to update the update.json file?
Yes. Please replace the original with the attached one.
Title: Re: Online Package Manager
Post by: dbannon on March 23, 2020, 12:13:04 pm
@getmem, good move !   Again, thanks for a really great tool.

@wp, yes, some download isses, I'll open a thread in "Packages and Libraries" rather than clog up getmem's thread.

Davo
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 12:43:03 pm
Quote
@getmem, good move !   Again, thanks for a really great tool.
Thank you Davo.
Title: Re: Online Package Manager
Post by: avra on March 23, 2020, 12:47:38 pm
if you wish to change the text, please let me know.
Original license is LGPL 3.0 (not GPL 2 as shown in screenshot). Origin: http://keit.co/p/tmapviewer/
Title: Re: Online Package Manager
Post by: balazsszekely on March 23, 2020, 12:52:41 pm
Quote
Original license is LGPL 3.0 (not GPL 2 as shown in screenshot). Origin: http://keit.co/p/tmapviewer/
Thanks @avra. I will change it in the main json.
Title: Re: Online Package Manager
Post by: wp on March 23, 2020, 01:05:41 pm
if you wish to change the text, please let me know.
Original license is LGPL 3.0 (not GPL 2 as shown in screenshot). Origin: http://keit.co/p/tmapviewer/
Sorry, I don't have any idea about licenses. On the other hand, Maciej Kaczkowski, the author of the very first version, writes in the file header of the main viewer unit (and this is retained in LazMapViewer): "This library is free software; you can redistribute it and/or modify it  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." - Is this LGPL 3.0? I understood it as GPL 2.
Title: Re: Online Package Manager
Post by: wp on March 23, 2020, 02:20:04 pm
Quote
Perfect. Do I have to update the update.json file?
Yes. Please replace the original with the attached one.
Done.
Title: Re: Online Package Manager
Post by: avra on March 23, 2020, 10:18:30 pm
Maciej Kaczkowski, the author of the very first version, writes in the file header of the main viewer unit (and this is retained in LazMapViewer): "This library is free software; you can redistribute it and/or modify it  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." - Is this LGPL 3.0? I understood it as GPL 2.
If we search for "GNU Library General Public License" one of the first links will be this one: https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html. It can be seen there that mentioned library is LGPL and not pure GPL. As for the version - yes, code headers state LGPL 2 or any later version, while his original site that is still live says library is LGPL 3.0. Therefore, probably most correct would be to say that library is LGPL 2.0 or any later version.
Title: Re: Online Package Manager
Post by: wp on March 24, 2020, 12:03:45 am
OK, I'll change it after I received feedback from jc99, the author of the package with the BGRABitmap drawing engine.
Title: Re: Online Package Manager
Post by: wp on April 09, 2020, 01:19:51 pm
As discussed in the other thread (https://forum.lazarus.freepascal.org/index.php/topic,49075.0.html) and agreed by all authors, I now changed the license of the LazMapviewer component to modified LGPL (like RTL, FCL, LCL). GetMem, could you please add the new version to OPM? https://sourceforge.net/projects/lazarus-ccr/files/LazMapViewer/lazmapviewer-v0.2.2.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on April 09, 2020, 01:46:05 pm
@wp
I updated the central repository, thanks for the new version.
Title: Re: Online Package Manager
Post by: anderbelluno on April 22, 2020, 06:11:10 pm
Hi Getman, i'm REST Dataware team, we have a new version on Source Forge repository,  you can update OPM please? Tks
Title: Re: Online Package Manager
Post by: balazsszekely on April 22, 2020, 09:50:42 pm
Quote
Hi Getman, i'm REST Dataware team, we have a new version on Source Forge repository,  you can update OPM please? Tks
I updated the package. Thank you!
Title: Re: Online Package Manager
Post by: lainz on April 26, 2020, 01:51:21 pm
Hi GetMem, I've made a small application with BGRAControls
https://forum.lazarus.freepascal.org/index.php/topic,49528.0.html

Is to display OPM Packages like in the website, but in a Lazarus Application  :)
Title: Re: Online Package Manager
Post by: wp on May 02, 2020, 11:08:39 am
GetMem, could you please update the fpspreadsheet release version in OPM? It is just a maintenance release because due to a change in Laz trunk (removal of the Combobox.ReadOnly property) the old release does not compile any more.

The new version, 1.10.2, is at https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.10.2.zip/download.
Title: Re: Online Package Manager
Post by: balazsszekely on May 02, 2020, 11:29:59 am
@wp
Quote
GetMem, could you please update the fpspreadsheet release version in OPM? It is just a maintenance release because due to a change in Laz trunk (removal of the Combobox.ReadOnly property) the old release does not compile any more.

The new version, 1.10.2, is at https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.10.2.zip/download.
I updated fpspreadsheet. Thanks for the new version.
Title: Re: Online Package Manager
Post by: Onur2x on May 04, 2020, 11:49:22 pm
Hello Getmem for OPM last turkish translete files.. thx
Title: Re: Online Package Manager
Post by: balazsszekely on May 05, 2020, 06:29:41 am
Hello Getmem for OPM last turkish translete files.. thx
Thank you! I forwarded the files to @Maxim.
Title: Re: Online Package Manager
Post by: Jurassic Pork on May 05, 2020, 08:58:30 am
hello,
GetMem, i have tried  to change the places of the folders in the options/folders of your online package manager with  lazarus 2.0.8 on windows 10. When i reload Lazarus the new folders have gone and i have the default folders.
What i have seen :
There is no option for the online package manager config folder in the options/folders tab.
If i put the config folder of the default place in my new place, the new folders in the options/folders are OK.
Friendly, J.P
Title: Re: Online Package Manager
Post by: balazsszekely on May 05, 2020, 09:58:19 am
Hi Jurassic Pork,

Thanks for the feedback.

Quote
When i reload Lazarus the new folders have gone and i have the default folders.
Unfortunately I cannot reproduce this issue(tested both Lazarus 2.0.8 and Lazarus trunk). More over I also checked the code, the folders are not removed by OPM. Something else must happening at your side. Do you use some kind of AV program?

Quote
There is no option for the online package manager config folder in the options/folders tab.
For consistency, OPM stores the config files in the same folder as lazarus. The good thing is the lazarus folder always writable on every OS. For the same reason the downloaded packages are also stored here. However some users prefer to keep the packages(can be large) somewhere else, hence the possibility to change the "package" folder. The "archive" and  "update" folders are just temporary directories used for zipping, downloading third party packages, etc...nothing special about them.
The bottom line is, I did not feel necessary to move the config folder somewhere else. I can implement it if you like, but I don't see the reason why, it's just a small folder stored where lazarus config files should be stored.

PS: The default OPM folder inside the lazarus config folder is always created even if secondary folders are defined in options. If the secondary folders fails for some reason, as in your case, OPM will fall back to the defaults.

Title: Re: Online Package Manager
Post by: Jurassic Pork on May 05, 2020, 10:09:42 am
sorry GetMem you are right,
i need to clean up my lazarus config because i have multiple versions and not properly installed.
Friendly, J.P
Title: Re: Online Package Manager
Post by: balazsszekely on May 05, 2020, 03:31:42 pm
@Onur2x
Maxim applied the translation files in r.63117. Thanks again.
Title: Re: Online Package Manager
Post by: Onur2x on May 05, 2020, 11:23:55 pm
Sorry, the wrong file was sent. mo instead of po
Title: Re: Online Package Manager
Post by: wp on May 08, 2020, 10:19:44 am
@GetMem: There is a new release of the JVCL library, v1.0.6. It was mainly released because some package files were only in the new lpk format introduced in Laz trunk and thus did not compile with the Lazarus release version. But it also contains a series of new components which were added over time:
- TJvPanel
- TJvOfficeColorButton
- TJvFullColorList
- TJvBehaviorLabel
- TJvTimeFramework components
- TJvGammaPanel
- TJvGridFilter
- TJvSpecialImage
- TJvImageTransform
- TJvInterpreter
- TJvPageList
plus many improvements of existing components (many related to LCL scaling). Thanks to Michal Gawrycki for his contributions.

See also: https://wiki.freepascal.org/JVCL_Components

The new version is at https://sourceforge.net/projects/lazarus-ccr/files/jvcllaz/jvcllaz-1.0.6.zip/download, the json-update file at https://sourceforge.net/projects/lazarus-ccr/files/jvcllaz/OPM/update_jvcllaz.json/download.
Title: Re: Online Package Manager
Post by: balazsszekely on May 08, 2020, 11:04:42 am
Thank you @wp. I updated the package.
Title: Re: Online Package Manager
Post by: tudi_x on May 08, 2020, 12:30:54 pm
hi. sorry if this is not the right thread.
just installed on MX Linux Lazarus 2.0.6. Please advise if there is a solution to seeing the components besides changing the OS colors in `Online Package Manager`.
theme is adwaita-dark.
not too much can be seen now.
thank you
Title: Re: Online Package Manager
Post by: wp on May 08, 2020, 12:41:17 pm
Thank you @wp. I updated the package.
Thank you, too. But could you update the package once again? As I noticed the IDE is playing tricks on me, it is not displaying the compatibility checkbox for packages correctly, and therefore I removed the compatibility option from some packages again while I added it to others... Sorry. The current zip file on the same location hopefully is correct. I did not change the version number, because this is a pain for so many sub-packages.
Title: Re: Online Package Manager
Post by: balazsszekely on May 09, 2020, 05:26:03 am
@wp
Until Sunday I'm out in the wild with no PC and very slow internet connection.
I will update the package when I'm back.

@tudi-x
I tought that color bug is already fixed. Apparenty not. I will look at the issue Sunday.
Title: Re: Online Package Manager
Post by: balazsszekely on May 11, 2020, 09:00:32 am
@wp
I updated the package today. Sorry for the delay.
Title: Re: Online Package Manager
Post by: wp on May 11, 2020, 09:32:44 am
No problem, thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on May 12, 2020, 06:44:00 am
Quote
just installed on MX Linux Lazarus 2.0.6. Please advise if there is a solution to seeing the components besides changing the OS colors in `Online Package Manager`.
theme is adwaita-dark.
not too much can be seen now.
thank you
@tudi_x
The black textcolor issue on dark themes it's fixed in Lazarus trunk. Unfortunately it wasn't backported to 2.0.x. You should switch to Lazarus trunk or wait for the next major release. If this is not an option, let me know and we find a way to patch VTV in 2.0.6.
Title: Re: Online Package Manager
Post by: anderbelluno on May 13, 2020, 09:14:28 pm
Hi, we have a new version REST Dataware on Source Forge repository,  Tks.
Title: Re: Online Package Manager
Post by: balazsszekely on May 14, 2020, 11:17:54 am
@anderbelluno
Quote
Hi, we have a new version REST Dataware on Source Forge repository,  Tks.
I updated the package. Thanks.
Title: Re: Online Package Manager
Post by: TRon on May 20, 2020, 03:14:15 pm
I am not quite sure if this is the correct forum for this to post, please advice in case my topic doesn't belong here and if so i apologise upfront.

I downloaded Synapse 40.1 (manually) from https://packages.lazarus-ide.org/

I (manually) extracted the package and installed it for usage with the Free Pascal commandline compiler (no Lazarus involved whatsoever, so that might be my mistake)

On attempt to use it with fpc (3.2rc1) the compiler throwed:
Code: [Select]
jedi.inc(611,4) Error: Illegal assembler style specified "INTEL"

Target is ARM

Line 611 reads:
Code: [Select]
  {$ASMMODE Intel}

I 'fixed' it with enclosing that define so that it reads:
Code: [Select]
  {$IFDEF CPU386}
  {$ASMMODE Intel}
  {$ENDIF}

Reason for posting:
1) I am not sure that this is the correct fix
2) i am not sure to whom to report, original author or package maintainer
3) even if i would know the answer to q2, i still have q1,
and depending on the answers to above questions
4) I do not know where/how exactly to report

Motivation is to have this compilation error solved (when using it out of the box).
Title: Re: Online Package Manager
Post by: lucamar on May 20, 2020, 04:22:43 pm
Reason for posting:
1) I am not sure that this is the correct fix
2) i am not sure to whom to report, original author or package maintainer
3) even if i would know the answer to q2, i still have q1,
and depending on the answers to above questions
4) I do not know where/how exactly to report

Report to the original author at the SourceForge project (http://sourceforge.net/projects/synalist/) (click on "issues" or "bugtracker" or whatever it's called).
Title: Re: Online Package Manager
Post by: TRon on May 20, 2020, 04:39:58 pm
Report to the original author at the SourceForge project (http://sourceforge.net/projects/synalist/) (click on "issues" or "bugtracker" or whatever it's called).
edit: sorry, it was not fixed in trunk, i assumed it was because the last commit to that file mentioned it (it fixed it at another location in the source)..  i hate sf online diff view (not showing line numbers whatsoever)

It was already fixed @ trunk in 2018.

If not mistaken then this only answers my first question.
Besides that, if i understand correctly, official release is v40 while lazarus package manager is at v40.1.

afaik i have no way to establish who is 'responsible' for v40.1
Title: Re: Online Package Manager
Post by: PascalDragon on May 20, 2020, 05:23:14 pm
1) I am not sure that this is the correct fix

Correct fix would be this (https://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/winunits-jedi/src/jedi.inc?r1=9639&r2=44951) which I had done to a jedi.inc shipped with FPC that I encountered when working on the Windows on ARM64 port.

2) i am not sure to whom to report, original author or package maintainer

Ideally the original author.
Title: Re: Online Package Manager
Post by: lucamar on May 20, 2020, 06:25:28 pm
Besides that, if i understand correctly, official release is v40 while lazarus package manager is at v40.1.

afaik i have no way to establish who is 'responsible' for v40.1

The last official release was v40.1, but Lukas stopped releasing some years ago. Instead he recommends using SVN checkouts (https://sourceforge.net/p/synalist/mailman/message/36612353/)
Title: Re: Online Package Manager
Post by: wp on May 20, 2020, 08:03:47 pm
When a package maintainer works with Laz trunk and is not careful he may damage the package due to the new package format. This happened to me again, now with LazMapViewer.

@GetMem: Could you please add the new LazMapViewer version 0.2.2.1 where the packages are fixed again: https://sourceforge.net/projects/lazarus-ccr/files/LazMapViewer/lazmapviewer-v0.2.2.1.zip/download - thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on May 20, 2020, 10:01:04 pm
@wp
Done. Thank you.
Title: Re: Online Package Manager
Post by: TRon on May 23, 2020, 05:26:28 am
Correct fix would be this (https://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/winunits-jedi/src/jedi.inc?r1=9639&r2=44951) which I had done to a jedi.inc shipped with FPC that I encountered when working on the Windows on ARM64 port.
Thank you for the correction. Indeed i forgot the 64-bit check  :-[

Ideally the original author.
uhm, yeah i know the 'correct' route  :), However...

The last official release was v40.1, ...
Well, if you say so but, synapse trunk sources <> package manager 40.1 release sources  and, there is no evidence whatsoever that is able to verify that statement other then the mention of the original author in the Lazarus package (and i tried very hard, using all resources available including these forums).

I must be missing/overlooking something obvious ?

Quote
but Lukas stopped releasing some years ago. Instead he recommends using SVN checkouts (https://sourceforge.net/p/synalist/mailman/message/36612353/)
Besides package and trunk not using the same source, there were no updates in over so many years so that isn't very hopeful that it ever get fixed inside Lazarus package ... or is it ?
Title: Re: Online Package Manager
Post by: lainz on May 28, 2020, 09:54:38 pm
Hi GetMem, you can add BGRAControls and BGRABitmap newest releases?  :)
Title: Re: Online Package Manager
Post by: balazsszekely on May 29, 2020, 06:29:24 am
Hi lainz,

I updated the packages, thanks for the new version.
Title: Re: Online Package Manager
Post by: julkas on May 31, 2020, 02:54:44 pm
May be we can add -
1. Generics.Collections - https://github.com/maciej-izak/generics.collections.
2. FastMM4-AVX - https://github.com/maximmasiutin/FastMM4-AVX.
Title: Re: Online Package Manager
Post by: PascalDragon on May 31, 2020, 03:22:24 pm
1. Generics.Collections - https://github.com/maciej-izak/generics.collections.

This is only required for pre-3.2.
Title: Re: Online Package Manager
Post by: julkas on May 31, 2020, 03:33:32 pm
1. Generics.Collections - https://github.com/maciej-izak/generics.collections.

This is only required for pre-3.2.
I use only FPC 3.0.4 (release).
Title: Re: Online Package Manager
Post by: balazsszekely on June 01, 2020, 08:43:05 am
@julkas
Quote
May be we can add -
1. Generics.Collections - https://github.com/maciej-izak/generics.collections.
2. FastMM4-AVX - https://github.com/maximmasiutin/FastMM4-AVX.
Neither generic.collections nor FastMM4-AVX contains an lpk file. Without a lazarus package I cannot add it to OPM. The whole concept of OPM is based on packages.
Title: Re: Online Package Manager
Post by: wp on June 02, 2020, 02:14:35 pm
@GetMem: There is a new FPSpreadsheet version 1.12: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.10.2.zip/download. I would appreciate if you could update OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on June 02, 2020, 02:54:00 pm
@wp
I compared the content of the zip with the current FPSpreadsheet form OPM. There are no differences, the two directories are exactly the same.
Title: Re: Online Package Manager
Post by: fred on June 02, 2020, 03:47:16 pm
I see version 1.12 and 1.10.2 in the same post?

Edit:

Just checked, there is a https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.12.zip
Title: Re: Online Package Manager
Post by: wp on June 02, 2020, 03:54:08 pm
Ah, I got confused by the similar numbers and copied the link for 1.10.2. But the new version is 1.12: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.12.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on June 02, 2020, 05:14:56 pm
@wp, @fred
Done. Thank you.
Title: Re: Online Package Manager
Post by: af0815 on June 03, 2020, 02:46:16 pm
A new Version of the Eye candy controls is anaunced here https://forum.lazarus.freepascal.org/index.php?topic=50053.new#new

OPM is 0.9.30 and the new is 0.9.44
Title: Re: Online Package Manager
Post by: balazsszekely on June 04, 2020, 07:10:22 am
@af0815
Thanks. I updated the package.

PS: Also updated: atsynedit, atsynedit_ex, atsynedit_cmp, atflatcontrols, econtrol, python-for-lazarus, emmet-pascal
Title: Re: Online Package Manager
Post by: RDL on June 24, 2020, 12:12:20 pm
Lazarus-qt 2.0.8
opm bug in scrollbar
https://s7.gifyu.com/images/Peek-2020-06-24-19-06.gif
Title: Re: Online Package Manager
Post by: balazsszekely on June 25, 2020, 08:02:34 am
Hi RDL,

Quote
Lazarus-qt 2.0.8
opm bug in scrollbar
https://s7.gifyu.com/images/Peek-2020-06-24-19-06.gif
It looks like a VirtualTreeview bug, a component used by OPM. Can you please test it with Lazarus trunk, maybe the issue is fixed already. If not, I will install a VM with Lazarus qt and see what can I do.
Title: Re: Online Package Manager
Post by: RDL on June 25, 2020, 11:45:20 am
Hi, GetMem.
I created a simple application using VirtualTreeView and it has the same problem with the scroll bar.
Title: Re: Online Package Manager
Post by: heejit on June 26, 2020, 10:39:26 pm
I am not able to install mormot.

Lazarus : 2.0.8
FPC : 3.2.0
OS : Xubuntu 20.04 64 bit
Title: Re: Online Package Manager
Post by: wp on June 26, 2020, 11:08:40 pm
I created a simple application using VirtualTreeView and it has the same problem with the scroll bar.
Why don't you upload the application (.pas, .lfm, .lpi and .lpr files only, packed to a zip; no compiler-generated files, please)? This would save GetMem the time to create such a program himself. And others could verify the issue as well. Or maybe you did something wrong and it's no issue of VTV at all (such things happen...)
Title: Re: Online Package Manager
Post by: balazsszekely on June 27, 2020, 09:50:24 am
I am not able to install mormot.

Lazarus : 2.0.8
FPC : 3.2.0
OS : Xubuntu 20.04 64 bit
Thanks for the feedback. I'm on vacation now. I will take a look next week.
Title: Re: Online Package Manager
Post by: Thaddy on June 27, 2020, 11:07:27 am
I'm on vacation now. I will take a look next week.
Me too: Hintergarten
Title: Re: Online Package Manager
Post by: dbannon on July 01, 2020, 02:57:24 am
Getmem, when I use the OPM to install KControls with FPC320, I get a warming its not tested.

I have been using it with FPC320 rc1 and Lazarus Trunk for a couple of months, now its FPC320 release. All the parts I use work fine, mostly only KMemo though. Is that all you need to know to mark it as 'Tested' ?

Davo
Title: Re: Online Package Manager
Post by: balazsszekely on July 01, 2020, 07:48:19 am
Getmem, when I use the OPM to install KControls with FPC320, I get a warming its not tested.

I have been using it with FPC320 rc1 and Lazarus Trunk for a couple of months, now its FPC320 release. All the parts I use work fine, mostly only KMemo though. Is that all you need to know to mark it as 'Tested' ?

Davo
Thank you Davo. I will fix it soon.
Title: Re: Online Package Manager
Post by: balazsszekely on July 04, 2020, 09:03:12 am
Sorry everyone for the delay.

@heejit
I fixed mormot, please test now.

@Davo
Warning removed for KControls(fpc320).

@RDL
I'm unable to reproduce this issue. Can you please attach a sample application. Also which version of Lazarus/FPC/QT do you use?

@all
I don't want to hijack the following thread: https://forum.lazarus.freepascal.org/index.php/topic,13786.75.html, so I will respond here.
Inspired by the discussion, I did try to update Internet Tools without success. Internet tools depends on flre(https://github.com/BeRo1985/flre), however flre does not contain any package, the source files must be added as a relative path. After a few trial and error I managed to compile Internet Tools, however the demos does not work, maybe I'm doing something wrong, any suggestions is appreciated.
In my opinion a package should be self-contained, it can depend on other packages, but any other manual adjustment is an overkill.
Title: Re: Online Package Manager
Post by: Jurassic Pork on July 04, 2020, 10:24:18 am
hello getmem,
Inspired by the discussion, I did try to update Internet Tools without success. Internet tools depends on flre(https://github.com/BeRo1985/flre), however flre does not contain any package, the source files must be added as a relative path. After a few trial and error I managed to compile Internet Tools, however the demos does not work, maybe I'm doing something wrong, any suggestions is appreciated.
In my opinion a package should be self-contained, it can depend on other packages, but any other manual adjustment is an overkill.
have a look here (https://forum.lazarus.freepascal.org/index.php/topic,49927.msg364408.html#msg364408) to have success with install of internet tools .

Friendly, J.P
Title: Re: Online Package Manager
Post by: balazsszekely on July 04, 2020, 10:34:55 am
@Jurassic Pork
Quote
have a look here to have success with install of internet tools .
Thank you, I bookmarked that page for future reference. I'm glad the package from OPM is still usable.
However, as I mentioned in my previous post, a package should be self-contained, adding paths to the project is an overkill in my opinion.
Title: Re: Online Package Manager
Post by: heejit on July 04, 2020, 05:04:59 pm
Installed Succesfully.

But compling a test project shows following error may be missing dependency I used fpcupdeluxe
to install Lazarus/FPC.

Code: Pascal  [Select][+][-]
  1. Warning: Object static/x86_64-linux/sha512-x64sse4.o not found, Linking may fail !
  2. Warning: Object static/x86_64-linux/crc32c64.o not found, Linking may fail !
  3. Error: Error while linking
  4.  


Sorry everyone for the delay.

@heejit
I fixed mormot, please test now.

Title: Re: Online Package Manager
Post by: TRon on July 05, 2020, 08:09:31 am
Hi GetMem,

Sorry everyone for the delay.
I hope you were able to enjoy your vacation, especially in these days of social distancing.

Quote
@all
I don't want to hijack the following thread: https://forum.lazarus.freepascal.org/index.php/topic,13786.75.html, so I will respond here.
Inspired by the discussion, I did try to update Internet Tools without success. Internet tools depends on flre(https://github.com/BeRo1985/flre), however flre does not contain any package, the source files must be added as a relative path. After a few trial and error I managed to compile Internet Tools, however the demos does not work, maybe I'm doing something wrong, any suggestions is appreciated.
In my opinion a package should be self-contained, it can depend on other packages, but any other manual adjustment is an overkill.
Thank you for taking notice of my post.

I have to correct myself first with regards to that post. There is nothing wrong with OPM itself. It is about the packages it uses/provides.

Issue 1: https://forum.lazarus.freepascal.org/index.php/topic,34297.msg363013.html#msg363013
Issue 2: https://forum.lazarus.freepascal.org/index.php/topic,50287.0.html and https://forum.lazarus.freepascal.org/index.php/topic,50293.0.html
Issue 3: https://forum.lazarus.freepascal.org/index.php/topic,13786.msg367368.html#msg367368

And i got myself into issues with synapse as well somewhere along the line.

Instead of beating the dead horse, would it be possible for the packages to explicitly mention that the source of the package does not have anything to do with the sources that the package currently links to, and that original author/project has nothing to do with those ?

Preferably packages that are based on other projects that are either abandoned or included/provided (and sometimes adjusted) without any knowledge of original author should be hosted somewhere else so that issues could be addressed in a more proper way.

Regards,
Title: Re: Online Package Manager
Post by: Renat.Su on July 05, 2020, 02:20:59 pm
Can You add https://github.com/risoflora/brookfreepascal ?
This is brook framework with many plugins. New brookframework works via sagui lib but brookfreepascal works as a solid app.
Title: Re: Online Package Manager
Post by: El Salvador on July 05, 2020, 03:41:36 pm
Hi everybody, I make a fix for TVirtualTree and I want send the patch (or make a pull request). The git repo https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-master is the main source repo of this library? I downloaded and modified VST V5 from OPM, and I wanted to make a pull request, but after a source compare, I found too many diffs.
Title: Re: Online Package Manager
Post by: balazsszekely on July 05, 2020, 08:25:11 pm
@heejit
Quote
But compling a test project shows following error may be missing dependency I used fpcupdeluxe to install Lazarus/FPC.
Warning: Object static/x86_64-linux/sha512-x64sse4.o not found, Linking may fail !
Warning: Object static/x86_64-linux/crc32c64.o not found, Linking may fail !
Error: Error while linking
Plese check the following posts:
  https://forum.lazarus.freepascal.org/index.php/topic,44585.msg313650.html#msg313650
  https://forum.lazarus.freepascal.org/index.php/topic,48629.msg350326.html#msg350326
  https://forum.lazarus.freepascal.org/index.php/topic,39249.msg268756.html#msg268756R
To disable filtering: Right click on the Message Window->Filter non urgent messages->Filter none, then rebuild the IDE. 


@Renat.Su
Quote
Can You add https://github.com/risoflora/brookfreepascal ?
This is brook framework with many plugins. New brookframework works via sagui lib but brookfreepascal works as a solid app.
There is already a Brookframework in OPM. What is the difference between the two?


@El Salvador
Quote
Hi everybody, I make a fix for TVirtualTree and I want send the patch (or make a pull request). The git repo https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-master is the main source repo of this library? I downloaded and modified VST V5 from OPM, and I wanted to make a pull request, but after a source compare, I found too many diffs.
I believe there is a separate branch for the V5 series: https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-v5
If your patch is applied, please let me know, so I can update VTV in OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on July 05, 2020, 08:46:15 pm
@TRon

Thanks for the feedback.

Approximately 50% of the packages are abandoned. Unfortunately with each new FPC/Lazarus version there is a high chance that a particular package won't compile anymore, fixing them it's not trivial either.
Another 20% of the packages are maintained, but the author shows no interest in publishing the package via OPM, which is perfectly fine. In this particular case, I update the packages from time to time. Since there are many package, the update becomes an increasingly frustrating activity.
Finally 30% of the packages are maintained and the authors actively publish the package via OPM. In this particular case we could do some improvement by creating a platform where the maintainers can login and update the packages without my intervention. Unfortunately I have no time to create the platform.

Quote
Instead of beating the dead horse, would it be possible for the packages to explicitly mention that the source of the package does not have anything to do with the sources that the package currently links to, and that original author/project has nothing to do with those ?

Preferably packages that are based on other projects that are either abandoned or included/provided (and sometimes adjusted) without any knowledge of original author should be hosted somewhere else so that issues could be addressed in a more proper way.
I'm not against it, but somebody has to go through 180 packages, find out which one is no longer maintained then hoste somewhere else. After a patch is created I have to  import it back to OPM.
Title: Re: Online Package Manager
Post by: TRon on July 05, 2020, 09:20:01 pm
@GetMem:
Thank you for the feedback and additional info.

oh dear... those are very bad statistics, and I wasn't aware of those ... That's a bummer and I am very sorry to hear that.

I understand that it is frustrating for you, especially since you afaik never volunteered for maintaining those packages (amongst them those that are abandoned). afaik you only ever opted for developing OPM.

The idea to host those (abandoned/non maintained  or without interest from original author) packages somewhere else was exactly meant as a relieve for you (if that would have the opposite effect then please feel free to express your concerns).

My experience till now has been that I ran into issues. What I normally do is fix those issues myself and just go one with life... easy peacy.

What I find frustrating about that is that if I would like to address such issues so that more people could benefit from them that there is currently (as I understand) no way for me doing so other then post it somewhere in the hopes it get's picked up (and by the looks of it that would be you personally ?).

That seems a bit of a wrong approach to me. If there would be a (semi-)public place where these sources are hosted then I would at least be able to push or pull-request my changes/fixes without the need to bother anyone else (up till a certain point). Of course that still poses a kind of security risk (something that I haven't given much thought yet). I also haven't given any thought on where exactly such packages should or could be hosted (if that would to be the case).

Do you have any idea's on how this situation could be improved (with the current resources that are available, or what resources would be required to make things easier for you) ?

For instance, I have been trying to get myself familiar with creating fpm files, but am still getting stuck on a couple of things (mostly related to what is the proper way of doing things as documentation seems lacking, and standalone lazpkm seems reluctant to cooperate). imho some packages don't belong to Lazarus perse but could also be provided by fpc package manager (unless there is a future path layout for that already and one that I am not aware of). You already mentioned for instance FLRE, which imho would be a perfect candidate for FPC package manager, instead of putting that (again) at the burden of OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on July 06, 2020, 06:47:07 am
@TRon
Quote
I understand that it is frustrating for you, especially since you afaik never volunteered for maintaining those packages (amongst them those that are abandoned). afaik you only ever opted for developing OPM.
Yes. Exactly.

Quote
My experience till now has been that I ran into issues. What I normally do is fix those issues myself and just go one with life... easy peacy.
What I find frustrating about that is that if I would like to address such issues so that more people could benefit from them that there is currently (as I understand) no way for me doing so other then post it somewhere in the hopes it get's picked up (and by the looks of it that would be you personally ?).
Currently is the only way. If you post the changes in this thread or via OPM, the modified package will be picked up.

Quote
That seems a bit of a wrong approach to me. If there would be a (semi-)public place where these sources are hosted then I would at least be able to push or pull-request my changes/fixes without the need to bother anyone else (up till a certain point). Of course that still poses a kind of security risk (something that I haven't given much thought yet). I also haven't given any thought on where exactly such packages should or could be hosted (if that would to be the case).
In my opinion the main problem is the lack of manpower. Even if I create a public place(github, bitbucket, etc) for the abandoned packages, somebody has to monitor and merge the pull-request. Instead of uploading zip files to https://packages.lazarus-ide.org/, I would apply pull-request on github. More over, with each package change the main json must be also updated(https://packages.lazarus-ide.org/packagelist.json), otherwise OPM wouldn't notice the change. I don't see how we can automate this process further.
Title: Re: Online Package Manager
Post by: lucamar on July 06, 2020, 12:01:47 pm
What I find frustrating about that is that if I would like to address such issues so that more people could benefit from them that there is currently (as I understand) no way for me doing so other then post it somewhere in the hopes it get's picked up (and by the looks of it that would be you personally ?).

That seems a bit of a wrong approach to me. If there would be a (semi-)public place where these sources are hosted then I would at least be able to push or pull-request my changes/fixes without the need to bother anyone else (up till a certain point). Of course that still poses a kind of security risk (something that I haven't given much thought yet). I also haven't given any thought on where exactly such packages should or could be hosted (if that would to be the case).

Do you have any idea's on how this situation could be improved (with the current resources that are available, or what resources would be required to make things easier for you) ?

Folks, we're talking mainly of FOSS here: if there's an abandoned package which someone wants to start maintaining again, that someone should first try to contact the original developer and ask for a transfer; if that fails one can then simply fork the package, advertise the fact and keep going on with it.

If you remember, that's basically what happened with for example MWEdit, which became SynEdit after Martin W. said he no longer cared for it. Afterwards Lazarus forked it again to keep its own version alive and maintained while the "standard" SynEdit went its own way. That's how (and why) FOSS works.  ;)
Title: Re: Online Package Manager
Post by: Renat.Su on July 06, 2020, 01:23:28 pm
@Renat.Su
Quote
Can You add https://github.com/risoflora/brookfreepascal ?
This is brook framework with many plugins. New brookframework works via sagui lib but brookfreepascal works as a solid app.
There is already a Brookframework in OPM. What is the difference between the two?
BrookFreePascal is a Brookframework before splitting them into two projects. Oddly enough, BrookFreePascal (direct descendant of the old Brook Framework) contains all the former plugins. https://github.com/risoflora/brookfreepascal/tree/master/plugins The new brook framework is heavily reworked and does not contain such plugins . The new Brook Framework was developed by the author (https://github.com/silvioprog) for compatibility with Delphi and does not contain plugins. Also, the new BrookFramework (https://github.com/risoflora/brookframework) can only work with the sagui library (https://github.com/risoflora/libsagui) written in C++. Some users remained working on BrookFreePascal although the new Brook Framework also supports FreePascal. BrookFreePascal which still has plug-ins and has no dependency on sagui, but its minus is that only FreePascal is supported.

Important note: both frameworks are supported by the author in the https://github.com/risoflora
Title: Re: Online Package Manager
Post by: balazsszekely on July 06, 2020, 01:53:11 pm
@Renat.Su
Thanks for the info. I added BrookFreePascal to OPM.
Title: Re: Online Package Manager
Post by: El Salvador on July 07, 2020, 02:27:56 pm
@El Salvador
Quote
Hi everybody, I make a fix for TVirtualTree and I want send the patch (or make a pull request). The git repo https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-master is the main source repo of this library? I downloaded and modified VST V5 from OPM, and I wanted to make a pull request, but after a source compare, I found too many diffs.
I believe there is a separate branch for the V5 series: https://github.com/blikblum/VirtualTreeView-Lazarus/tree/lazarus-v5
If your patch is applied, please let me know, so I can update VTV in OPM.
Hi, my patch for VTV has been applied. You can see the changes in https://github.com/blikblum/VirtualTreeView-Lazarus/pull/18. Thank you very much @GetMem!
Title: Re: Online Package Manager
Post by: wp on July 07, 2020, 02:53:44 pm
Could you provide a patch also for the VTV variant which is distributed with Lazarus? It is based on blikblum's VTV v5 but has renamed units and classes. Not that you need Laz trunk for it. If we do not fix this the two versions will run out of sync.
Title: Re: Online Package Manager
Post by: El Salvador on July 07, 2020, 04:23:56 pm
Could you provide a patch also for the VTV variant which is distributed with Lazarus? It is based on blikblum's VTV v5 but has renamed units and classes. Not that you need Laz trunk for it. If we do not fix this the two versions will run out of sync.
Do I have to send the patch via https://bugs.freepascal.org or can I post it in this topic?
Title: Re: Online Package Manager
Post by: wp on July 07, 2020, 04:48:21 pm
I'd appreciate to have it in the bug tracker because source changes are documented better this way. But if you did not yet worked with bugtracker it would be ok to attach it here.
Title: Re: Online Package Manager
Post by: El Salvador on July 07, 2020, 05:46:52 pm
I make https://bugs.freepascal.org/view.php?id=37310. I hope I haven't left forgotten anything.  :)
Title: Re: Online Package Manager
Post by: balazsszekely on July 07, 2020, 05:49:15 pm
@El Salvador

Thanks. I updated VTV V5 in OPM.
Title: Re: Online Package Manager
Post by: El Salvador on July 12, 2020, 10:52:02 am
I wanted to report you BGRABitmap V11.1 (https://github.com/bgrabitmap/bgrabitmap/releases/tag/v11.1). Actual version 11.0 is failed to compile in Lazarus 2.0.10.
Title: Re: Online Package Manager
Post by: balazsszekely on July 13, 2020, 10:45:41 am
@El Salvador

Quote
I wanted to report you BGRABitmap V11.1 (https://github.com/bgrabitmap/bgrabitmap/releases/tag/v11.1). Actual version 11.0 is failed to compile in Lazarus 2.0.10.
Thanks. I believe this bug is not related to OPM and since BGRABitmap is a well maintained package, we should report it to @circular.
Title: Re: Online Package Manager
Post by: balazsszekely on July 15, 2020, 12:50:18 pm
@El Salvador

With your latest changes to VTV, the selections in OPM are not visible anymore.(see attached image). If I revert the changes, everything works fine again.
Title: Re: Online Package Manager
Post by: calebs on July 16, 2020, 05:46:55 am
I wanted to report you BGRABitmap V11.1 (https://github.com/bgrabitmap/bgrabitmap/releases/tag/v11.1). Actual version 11.0 is failed to compile in Lazarus 2.0.10.

Hello I also have this problem, cant compile bgrabitmap or bgracontrols or uecontrols with lazarus 2.0.10 x86
Im using windows 10x64 1909.
It was working with 2.0.8 and previous.
Title: Re: Online Package Manager
Post by: balazsszekely on July 16, 2020, 02:06:37 pm
@El Salvador, @calebs
BGRABitmap is now updated.
Title: Re: Online Package Manager
Post by: calebs on July 16, 2020, 02:58:18 pm
@El Salvador, @calebs
BGRABitmap is now updated.

Thanks for the support!
Title: Re: Online Package Manager
Post by: wp on July 20, 2020, 12:24:01 am
GetMem, could you please update TParadoxDataset to v0.2.1.
- Download at https://sourceforge.net/projects/lazarus-ccr/files/Paradox%20DataSet/tparadoxdataset-v0.2.1.zip/download
- update-json at https://sourceforge.net/projects/lazarus-ccr/files/Paradox%20DataSet/OPM/update_TParadoxDataset.json/download

Thanks
Title: Re: Online Package Manager
Post by: balazsszekely on July 20, 2020, 06:48:59 am
@wp
Quote
GetMem, could you please update TParadoxDataset to v0.2.1.
I updated the package. Thank you!
Title: Re: Online Package Manager
Post by: circular on July 20, 2020, 10:21:31 am
Hi GetMem,

Here are some more information about the version update process I've been using for BGRABitmap.

First:
- The JSON package information file is part of the master branch on the GitHub repository. So it is updated when the changes are merged.

Then (generally a few seconds afterwards but sometimes a bit later):
- The new version is released, adding a tag for the version, and then the zip archive of the package (mentioned in the JSON file) becomes available.

So I suppose the following can happen: OPM sees that there is a new version but when trying to access the zip file, it fails.

Could that be a reason for the problem of version update?
Title: Re: Online Package Manager
Post by: El Salvador on July 20, 2020, 10:45:16 am
@El Salvador

With your latest changes to VTV, the selections in OPM are not visible anymore.(see attached image). If I revert the changes, everything works fine again.
Sorry, I saw your post only this morning. I checked LazVTV source against Delphi VTV 5.* and maybe I found the issue. I restored some lines of code. I don't know why this code in delphi source:

Code: Pascal  [Select][+][-]
  1. tsUseExplorerTheme in FStates) then

becomes in lazarus version:

Code: Pascal  [Select][+][-]
  1. (Theme <> 0) then

I'm posting the patch in this post, can you try it in OPM? So, we are sure this patch works properly. Then I will send the patch in Lazarus BugTracker and in github.
Title: Re: Online Package Manager
Post by: fabiopesaju on July 20, 2020, 12:59:42 pm
sorry for my ignorance... I don't know if OPM already does this, or if it has this option or not...

but, are all packages updated manually on the OPM server (http://packages.lazarus-ide.org/)? wouldn't it be better to always download the latest version of a url containing the file/git/svn? and compile the component from downloaded files? or at least allow it?
Title: Re: Online Package Manager
Post by: balazsszekely on July 20, 2020, 01:02:51 pm
@El Salvador

Quote
Sorry, I saw your post only this morning. I checked LazVTV source against Delphi VTV 5.* and maybe I found the issue. I restored some lines of code. I don't know why this code in delphi source:
The bug is already fixed in trunk(r. 63586) by @pascal. I did ran a few test and it works fine.
Title: Re: Online Package Manager
Post by: balazsszekely on July 20, 2020, 01:16:29 pm
@fabiopesaju
Quote
sorry for my ignorance... I don't know if OPM already does this, or if it has this option or not...
but, are all packages updated manually on the OPM server (http://packages.lazarus-ide.org/)? wouldn't it be better to always download the latest version of a url containing the file/git/svn? and compile the component from downloaded files? or at least allow it?
Yes. The packages are updated manually on the OPM server(http://packages.lazarus-ide.org/).
Unfortunately trunk versions may contain bugs and the bugtracker will be flooded with issues about third party packages(actually this already happened in the past), so it was decided, that OPM should only target stable version of a particular package. As a compromise, a package maintainer can push via OPM a newer, stable version of a package, for more details please check: https://wiki.freepascal.org/Online_Package_Manager

PS: I have working code for svn checkout, git clone. What you propose it can be easily achieved, but it's not preferred for the above mentioned reasons.
Title: Re: Online Package Manager
Post by: balazsszekely on July 20, 2020, 01:37:22 pm
Quote
Hi GetMem,

Here are some more information about the version update process I've been using for BGRABitmap.

First:
- The JSON package information file is part of the master branch on the GitHub repository. So it is updated when the changes are merged.

Then (generally a few seconds afterwards but sometimes a bit later):
- The new version is released, adding a tag for the version, and then the zip archive of the package (mentioned in the JSON file) becomes available.

So I suppose the following can happen: OPM sees that there is a new version but when trying to access the zip file, it fails.

Could that be a reason for the problem of version update?

Hi circular,

Sorry for the late reply, somehow I did not noticed your post. OPM only checks the json in every few minutes, so I don't think the above mentioned reason is the problem.
Updating from the package maintainers webpage might fail because:

1. Many users did not liked the idea that OPM connects to various webpages(github, sourceforge, bitbucket, etc...) and downloads information about a particular package, 
so this feature is disabled by default(OPM-->Options-->General-->Check for package update, then change never to some other value).
2. In order to connect to github, OPM needs the ssl libraries. In lazarus trunk the libraries are automatically downloaded, that's not the case with previous versions.
3. Since 2.0.10 was released with FPC 3.2.0, it introduced a new bug. I fixed yesterday in trunk, but unfortunately is to late for 2.0.10.
In the next major release, everything will work well again. Luckily the release is not so far away.

Today I saw that you released 11.2.0.0 and I updated the central repository, maybe too soon. I just noticed that the update json is only 11.1.0.0.
Title: Re: Online Package Manager
Post by: El Salvador on July 20, 2020, 02:11:55 pm
@El Salvador

Quote
Sorry, I saw your post only this morning. I checked LazVTV source against Delphi VTV 5.* and maybe I found the issue. I restored some lines of code. I don't know why this code in delphi source:
The bug is already fixed in trunk(r. 63586) by @pascal. I did ran a few test and it works fine.
Ok. I don't know for "theme <> 0", but in my initial patch I forget this change:
Code: [Select]
  {$ifdef Windows}
  if tsUseExplorerTheme in FStates then
    CloseThemeData(Theme);
  {$endif}

Reviewing the code, maybe I will make another change in VTV sources. Stay tuned. :)
Title: Re: Online Package Manager
Post by: fabiopesaju on July 20, 2020, 03:53:47 pm
@fabiopesaju
Quote
sorry for my ignorance... I don't know if OPM already does this, or if it has this option or not...
but, are all packages updated manually on the OPM server (http://packages.lazarus-ide.org/)? wouldn't it be better to always download the latest version of a url containing the file/git/svn? and compile the component from downloaded files? or at least allow it?
Yes. The packages are updated manually on the OPM server(http://packages.lazarus-ide.org/).
Unfortunately trunk versions may contain bugs and the bugtracker will be flooded with issues about third party packages(actually this already happened in the past), so it was decided, that OPM should only target stable version of a particular package. As a compromise, a package maintainer can push via OPM a newer, stable version of a package, for more details please check: https://wiki.freepascal.org/Online_Package_Manager

PS: I have working code for svn checkout, git clone. What you propose it can be easily achieved, but it's not preferred for the above mentioned reasons.

well, I believe it would be interesting to give the option to use the latest stable version of the OPM repositories or choose to download directly from the sources. but I understand that this could generate a flood of ignorant messages...

I have nothing to complain about, just to be grateful for the OPM... it would be an immeasurable lack of respect to criticize such a project, without even contributing in any way...
Title: Re: Online Package Manager
Post by: balazsszekely on July 20, 2020, 05:35:07 pm
@fabiopesaju
Quote
I have nothing to complain about, just to be grateful for the OPM
Thank you.

Quote
it would be an immeasurable lack of respect to criticize such a project, without even contributing in any way.
In my opinion constructive criticism is always a good thing, unfortunately some users(not you) have unrealistic expectations from OPM or Lazarus in general.
Title: Re: Online Package Manager
Post by: lainz on July 20, 2020, 05:55:33 pm
Today I saw that you released 11.2.0.0 and I updated the central repository, maybe too soon. I just noticed that the update json is only 11.1.0.0.

Seems that the version was not changed in that file.
Title: Re: Online Package Manager
Post by: circular on July 21, 2020, 04:41:59 pm
Sorry for the late reply, somehow I did not noticed your post.
It's alright.

Quote
Updating from the package maintainers webpage might fail because:
Hmm I was not thinking about OPM plugin connecting to Github but about the repository (packages.lazarus-ide.org). I suppose that's where the list comes from.
Title: Re: Online Package Manager
Post by: lainz on July 21, 2020, 05:55:01 pm
Sorry for the late reply, somehow I did not noticed your post.
It's alright.

Quote
Updating from the package maintainers webpage might fail because:
Hmm I was not thinking about OPM plugin connecting to Github but about the repository (packages.lazarus-ide.org). I suppose that's where the list comes from.

The list is updated manually so maybe that's the delay, not like we update at github and is automatically mirrored at the packages website  :(
Title: Re: Online Package Manager
Post by: balazsszekely on July 21, 2020, 09:41:24 pm
@circular
Please take a look at the attached screenshot.
The red one is me(https://packages.lazarus-ide.org/), I'm always sluggish, because I have to update more then 50+ packages. You are the green one, every time you update the github json, the version is automatically updated in OPM. So when a user wish to update from the official repository, he/she need to click "From official repository"(see attached screenshot 2), but the package can be also updated directly from github "From third party repository".


PS: If the conditions from my previous post are met(https://forum.lazarus.freepascal.org/index.php/topic,34297.msg370371.html#msg370371), the version with green, should be visible soon after you updated the github page.
Title: Re: Online Package Manager
Post by: circular on July 22, 2020, 11:55:16 am
@GetMem

Hmm ok. As I understand you update the packages manually. I was wondering as you have a server for the website, why not have a scheduled task to update the central repository?

On MacOS, when choosing to check for updates, the OPM plugin crashes (and Lazarus with it). Luckily it takes a few seconds before it does, so it is possible to quickly reopen the plugin and go to the Options to disable the updates. Is it related to the SSL problem you mentioned?
Title: Re: Online Package Manager
Post by: balazsszekely on July 22, 2020, 12:39:12 pm
@circular
Quote
I was wondering as you have a server for the website, why not have a scheduled task to update the central repository?
Good idea and it is on my to do list for a long time. Unfortunately my time is so limited... :(

Quote
On MacOS, when choosing to check for updates, the OPM plugin crashes (and Lazarus with it). Luckily it takes a few seconds before it does, so it is possible to quickly reopen the plugin and go to the Options to disable the updates. Is it related to the SSL problem you mentioned?
Yes, most likely. Unfortunately I'm not a mac user, but I will run a few test when a mac is available. If you could test with Lazarus trunk/FPC 3.2.0, I would be grateful. With Trunk the crash should not happen.
Title: Re: Online Package Manager
Post by: circular on July 22, 2020, 12:45:25 pm
Good idea and it is on my to do list for a long time. Unfortunately my time is so limited... :(
I understand.

Quote
Yes, most likely. Unfortunately I'm not a mac user, but I will run a few test when a mac is available. If you could test with Lazarus trunk/FPC 3.2.0, I would be grateful. With Trunk the crash should not happen.
Ok so just tested with Lazarus 2.0.10 (not really trunk though) and the crash does not happen. It just doesn't seem to be able to get the version from third party repository.
Title: Re: Online Package Manager
Post by: El Salvador on July 22, 2020, 02:25:04 pm
Hi guys, only to say I make a new pull request for VTV (https://github.com/blikblum/VirtualTreeView-Lazarus/pull/19), already merged in dev branch, and I just send the patch in LazBugTracker (https://bugs.freepascal.org/view.php?id=37404). Thank you!
Title: Re: Online Package Manager
Post by: balazsszekely on July 22, 2020, 03:37:37 pm
@circular
Quote
Ok so just tested with Lazarus 2.0.10 (not really trunk though) and the crash does not happen. It just doesn't seem to be able to get the version from third party repository.
I fired up an old Mojave VM an it works well with Lazarus Trunk/FPC3.2.0(attached screenshot). It also works on Windows and Linux. Unfortunately is too late for Lazarus 2.0.10, FPC 3.2.0 introduced a new bug in OPM and I didn't noticed in time. Luckily the next major version is not so far away.

@El Salvador
Quote
Hi guys, only to say I make a new pull request for VTV (https://github.com/blikblum/VirtualTreeView-Lazarus/pull/19), already merged in dev branch, and I just send the patch in LazBugTracker (https://bugs.freepascal.org/view.php?id=37404). Thank you!
Thank you!
Title: Re: Online Package Manager
Post by: circular on July 22, 2020, 05:59:47 pm
I fired up an old Mojave VM an it works well with Lazarus Trunk/FPC3.2.0(attached screenshot). It also works on Windows and Linux. Unfortunately is too late for Lazarus 2.0.10, FPC 3.2.0 introduced a new bug in OPM and I didn't noticed in time. Luckily the next major version is not so far away.
Ok. No pressure as there are not many MacOS users.
Title: Re: Online Package Manager
Post by: lainz on July 22, 2020, 06:19:13 pm
Hi GetMem, check the BGRAControls thread, we managed to install both packages BGLControls and BGRAControls.

The problem is that the solution requires to change build mode of Lazarus, and installing a package first, rebuild, then installing the other package  %)

So I think is not possible for OPM to do such thing.

Edit: and if possible, not very elegant solution  :)
Title: Re: Online Package Manager
Post by: balazsszekely on July 22, 2020, 07:39:57 pm
@lainz
Quote
Check the BGRAControls thread, we managed to install both packages BGLControls and BGRAControls.
Great! I must congratulate you and circular, because I wasn't able to install the two packages at the same time.

Quote
he problem is that the solution requires to change build mode of Lazarus, and installing a package first, rebuild, then installing the other package  %)
So I think is not possible for OPM to do such thing.
Unfortunately this is not possible at the moment. 

Quote
Edit: and if possible, not very elegant solution  :)
Yes, I agree. As a side note BGRABitmap/ BGRAControls was the most popular example. There are many interdependent packages in OPM, with the same issues(FPC 3.2.0). See my thread here:  https://forum.lazarus.freepascal.org/index.php/topic,50620.0.html



@El Salvador
I updated VTV 5.3 in OPM, so now it has your latest changes.
Title: Re: Online Package Manager
Post by: valdir.marcos on July 23, 2020, 11:08:04 am
Could OPM indicate orphan components so interested people could easily find a way to be useful:

Orphaned Packages not set to QA Group -- Debian Quality Assurance
https://qa.debian.org/orphaned.html

Debian -- Orphaned Packages
https://www.debian.org/devel/wnpp/orphaned

Wiki - Lazarus Application Gallery / Projects using Lazarus
https://forum.lazarus.freepascal.org/index.php/topic,50616.msg370773.html#msg370773
Title: Re: Online Package Manager
Post by: balazsszekely on July 23, 2020, 11:25:39 am
Hi valdir.marcos,

Quote
Could OPM indicate orphan components so interested people could easily find a way to be useful:
Good idea! I can use different color, icon, etc..in the package tree. This can be easily implemented, the hard part is to find out which package out of 180 is orphan? If somebody can give me a package list, even if it's not complete,  I will do it.
Title: Re: Online Package Manager
Post by: valdir.marcos on July 23, 2020, 11:48:11 am
Hi valdir.marcos,

Quote
Could OPM indicate orphan components so interested people could easily find a way to be useful:
Good idea! I can use different color, icon, etc..in the package tree. This can be easily implemented, the hard part is to find out which package out of 180 is orphan? If somebody can give me a package list, even if it's not complete,  I will do it.
If possible, I think that icon and hint together are better than color indication for this case.
I will take a look on them trying to find out which of them are clearly not maintained or there might be a doubt if they are being maintained or not.
Thanks for your help and great work.
Title: Re: Online Package Manager
Post by: balazsszekely on July 23, 2020, 04:18:32 pm
@valdir.marcos

It's implemented in r.63634. I added a new sub node called "Orphaned package"(attached image1), in order for the orphan status to be clearly visible, I need an orphan icon in three resolution(16x16, 24x24, 32x32), the icon will be visible both in the root node and sub node(red squares in images).
Also the orphan status of the package is available on the hint window too(attached image2).

PS: I choose Abbrevia for demo purposes, AFAIK is a well maintained package.
Title: Re: Online Package Manager
Post by: wp on July 23, 2020, 04:44:44 pm
I have a problem here...  What is an "orphaned" package? When does it become like this? Who decides this?

I worry about old packages, well written in a way which is not affected by recent changes in FPC or Lazarus.

Look at DCPCrypt, used by many programs. On the site referred to by OPM, I can read: "DCPcrypt has finally been retired (except for the versions above). I’ve been developing it since 1999 and from 2007 (or so) it has been developing code rot as I’ve not had time to update it." As fas as I know, there is no maintainer for Lazarus. So, is it orphaned? I would say so. But "orphaned" means to many users: "Keep your hands off of this!" But I would say: no, absolutely no - it is an excellent package.

Instead of "orphaned" I'd prefer a line "Date of last update" in the package description, in additon to "Available since...". I agree that DCPCrypt will have a poor standing here too, but now there is an objective criterion for the maintainance level which can even be automated.

We have an online version of OPM at https://packages.lazarus-ide.org/. Would it be possible to add a user comment field to each package? This way a new user could read the comments and could decide on his own whether this package would be worth trying out.
Title: Re: Online Package Manager
Post by: lainz on July 23, 2020, 04:50:40 pm
Hi wp, is a good idea to add comments.

Maybe we can use any third party comment system like Facebook or Disqus. Just an unique ID is required for that to work properly.

Edit: i've used Facebook comments in the past, and it has no ads. Disqus "free" has ads.
Title: Re: Online Package Manager
Post by: balazsszekely on July 23, 2020, 05:26:37 pm
@wp
Quote
I have a problem here...  What is an "orphaned" package? When does it become like this? Who decides this?

OK. Fair enough. Perhaps we can change "orphaned" to something else. The idea is to somehow tag those packages that are no longer maintained. Let's say if the author did not modify the package for five years? A lot of user suggested the idea that an unmaintained/broken packages can be picked up by somebody else(see comment by TRon: https://forum.lazarus.freepascal.org/index.php/topic,34297.msg368200.html#msg368200)

Quote
I worry about old packages, well written in a way which is not affected by recent changes in FPC or Lazarus.

Look at DCPCrypt, used by many programs. On the site referred to by OPM, I can read: "DCPcrypt has finally been retired (except for the versions above). I’ve been developing it since 1999 and from 2007 (or so) it has been developing code rot as I’ve not had time to update it." As fas as I know, there is no maintainer for Lazarus. So, is it orphaned? I would say so. But "orphaned" means to many users: "Keep your hands off of this!" But I would say: no, absolutely no - it is an excellent package.

Instead of "orphaned" I'd prefer a line "Date of last update" in the package description, in additon to "Available since...". I agree that DCPCrypt will have a poor standing here too, but now there is an objective criterion for the maintainance level which can even be automated.

There is a rating system in OPM, that would solve the issue. For now it only works locally. We should create a database(https://packages.lazarus-ide.org/) and implement a login system, where each users can vote once. Unfortunately I did not have enough time to implement it. A five star package, is an excellent package, even if orphaned. More over we also have a "Community description" node, where everyone can add a comment(attachment). We can also give more detailed info there. 

Quote
We have an online version of OPM at https://packages.lazarus-ide.org/. Would it be possible to add a user comment field to each package? This way a new user could read the comments and could decide on his own whether this package would be worth trying out.
That page was created by @lainz, the information is read from the main json.



@lainz
Quote
Maybe we can use any third party comment system like Facebook or Disqus. Just an unique ID is required for that to work properly.
I'm not against it, but first we should create a database, and read the data from there instead from the json. 
Title: Re: Online Package Manager
Post by: lainz on July 23, 2020, 05:58:01 pm
So the database and the application to access it from the server. I've not done that by myself yet, at work using existing database and application. Yes I've expanded the database, created new endpoints in the application but not configured it from the ground.
Title: Re: Online Package Manager
Post by: balazsszekely on July 24, 2020, 06:39:28 am
@lainz
Quote
So the database and the application to access it from the server. I've not done that by myself yet, at work using existing database and application. Yes I've expanded the database, created new endpoints in the application but not configured it from the ground.
Yes. But there are some limitation. The site admin prefers Postgre as database server. For security reasons OPM can only connect to the database via a console application running on the server. 

We should also create a web interface where package maintainers can logon and upload their packages/ vote. I will have to rewrite a significant part of OPM, because now the whole system is based on the main json. So a lot of work :D.
Title: Re: Online Package Manager
Post by: lainz on July 24, 2020, 04:27:14 pm
@lainz
Quote
So the database and the application to access it from the server. I've not done that by myself yet, at work using existing database and application. Yes I've expanded the database, created new endpoints in the application but not configured it from the ground.
Yes. But there are some limitation. The site admin prefers Postgre as database server. For security reasons OPM can only connect to the database via a console application running on the server. 

We should also create a web interface where package maintainers can logon and upload their packages/ vote. I will have to rewrite a significant part of OPM, because now the whole system is based on the main json. So a lot of work :D.

Ok, I'm using postgres, so I know how to use it. About the console application, I've coded some endpoints in pascal as well, I can't remember wich tools used but is just like do the query to the database and return as json.

About the main json, maybe an endpoint called main.json will do the trick  :) Like it generates the json file with all the packages. Of couse is not optimal because it needs to download a huge file, but maybe adding some pagination will do.

And web interfaces is what I do most of the time, so I can help, but we need to organize in some way.  :)

Edit: of course is a lot of work and maybe you as me want to take weekends for fun not to keep coding like in the whole week  ::)
Title: Re: Online Package Manager
Post by: TRon on July 25, 2020, 01:37:53 am
@wp
Quote
I have a problem here...  What is an "orphaned" package? When does it become like this? Who decides this?

OK. Fair enough. Perhaps we can change "orphaned" to something else. The idea is to somehow tag those packages that are no longer maintained. Let's say if the author did not modify the package for five years? A lot of user suggested the idea that an unmaintained/broken packages can be picked up by somebody else(see comment by TRon: https://forum.lazarus.freepascal.org/index.php/topic,34297.msg368200.html#msg368200)

Indeed. A package that hasn't been updated for 5 years or sometimes even longer does not necessarly means it is orphaned and/or unsupported. In fact there are plenty of such libraries that works perfectly after so many years.

However, and I express it gladly again, my main concern is/was about packages that are indeed abandoned, then somehow ended up in OPM _and_ doing so by using different source-code.

It seems perfectly fine for blissfully unaware reactors to point me to how FOSS works (which, for these kind of things doesn't btw) but the above situation, for me personally, is a complete no-no.

Either you use the original sources that are abandoned (and perhaps not work) or you take over the project so that you are able to make changes to the original project and allow for others to take note of that.

Simply making changes to an abandoned project to make it work, adding it to OPM and then pointing towards the original repo/author, crossing fingers no-one will ever notice is just plain rude to everybody except for the one making use of these kind of tactics.

In such situation an (OPM) package should simply mention that fact and/or explicitly not pointing towards the original author and/or original repo.

I have spend 3 freakin' days ploughing my way through the forums here, reading post by post going back year by year, in the hopes to locate even a glimpse of someone mentioning that a particular package has been modified, but was unable to find any evidence of it.

How FOSSY is that ?  :'(
Title: Re: Online Package Manager
Post by: lainz on July 25, 2020, 01:47:10 am
I think we're thinking about OPM in his current stage, not in his 'mature' form.

If we will add support to anyone registered in the OPM website to add packages in the future, what prevents that me or anyone else fork and publish any kind of projects, even abandoned projects or 1 line of code projects, empty packages and so on?

If we keep thinking that GetMem will do all the job, everything is up to him finally don't you think that?

If the website will have a package asociated with an author, that doesn't add the relationship of maintainer of the package? Let's say we start adding all packages to GetMem, as new members register they can take his projects. Finally the projects that are still owned by GetMem are the 'not maintained' by his original author at least.
Title: Re: Online Package Manager
Post by: TRon on July 25, 2020, 02:00:12 am
@lainz:
Was that reply #1896 meant as a direct reaction to my post #1895 perhaps ?
Title: Re: Online Package Manager
Post by: lainz on July 25, 2020, 02:05:30 am
@lainz:
Was that reply #1896 meant as a direct reaction to my post #1895 perhaps ?

Inspired, but not directly. I mean I take this as a discussion to know what will be done or not.

I'm following the discussion only, not to attack someone response, trying to keep it friendly as well  :)

Edit: sorry if it sound that was like a direct response, or if I offended you in some way. The idea is to keep this friendly.
Title: Re: Online Package Manager
Post by: TRon on July 25, 2020, 02:10:53 am
Inspired, but not directly. I mean I take this as a discussion to know what will be done or not.

Edit: sorry if it sound that was like a direct response, or if I offended you in some way. The idea is to keep this friendly.
Because I wasn't sure if you were directly responding to my post, thought to ask instead in order to avoid confusion.

Because now that you aren't, I can delete my ranting reply that I wanted to post and try another approach  :-X
Title: Re: Online Package Manager
Post by: lainz on July 25, 2020, 02:31:43 am
Inspired, but not directly. I mean I take this as a discussion to know what will be done or not.

Edit: sorry if it sound that was like a direct response, or if I offended you in some way. The idea is to keep this friendly.
Because I wasn't sure if you were directly responding to my post, thought to ask instead in order to avoid confusion.

Because now that you aren't, I can delete my ranting reply that I wanted to post and try another approach  :-X

Ok.. I mean maybe the confusion was the part that says "don't you think?". I'm not native english speaker, so I don't know how to say that to anyone instead of using the 'you'. That you was meant to anyone, not specifically the previous post.

And well feel free to criticize my response anyways. The idea is to get the best solution I think, no one will have the right answer at the first, not even me or you or anyone. For that is the discussion forum.
Title: Re: Online Package Manager
Post by: lainz on July 25, 2020, 02:53:39 am
Indeed. A package that hasn't been updated for 5 years or sometimes even longer does not necessarly means it is orphaned and/or unsupported. In fact there are plenty of such libraries that works perfectly after so many years.

However, and I express it gladly again, my main concern is/was about packages that are indeed abandoned, then somehow ended up in OPM _and_ doing so by using different source-code.

It seems perfectly fine for blissfully unaware reactors to point me to how FOSS works (which, for these kind of things doesn't btw) but the above situation, for me personally, is a complete no-no.

Either you use the original sources that are abandoned (and perhaps not work) or you take over the project so that you are able to make changes to the original project and allow for others to take note of that.

Simply making changes to an abandoned project to make it work, adding it to OPM and then pointing towards the original repo/author, crossing fingers no-one will ever notice is just plain rude to everybody except for the one making use of these kind of tactics.

In such situation an (OPM) package should simply mention that fact and/or explicitly not pointing towards the original author and/or original repo.

I have spend 3 freakin' days ploughing my way through the forums here, reading post by post going back year by year, in the hopes to locate even a glimpse of someone mentioning that a particular package has been modified, but was unable to find any evidence of it.

How FOSSY is that ?  :'(

This is a direct reply indeed =)

I can agree with you, I hope that some day will be more forks of the projects, more contributions that are ported back to the original package, if still alive, and if not why not maintain a fork or become a maintainer, I personally seen projects like for example the user @wp is doing or @Avra, that are working with sources of codetyphoon porting back to lazarus or porting delphi packages. I think is a good idea.

I have a list of all the people that contributed to BGRAControls, first Dibo the original author, then Circular, and me. And a lot of people over the years, they are properly credited in the readme file. So I wish all projects that luck I had with this open source project. I know not all projects are really contributed by the community, and are just single man tools.

Another project is JsonTools, I have a fork for personal usage, but is not listed in OPM, so I need to include that file in my project instead of installing it from OPM. Mostly bugfixes that are added by some users in the official project GitHub page. Now the project is "abandoned" despite it works faster than the FPC json units... so I can get the idea of that abandoned projects don't mean that are bad.
Title: Re: Online Package Manager
Post by: TRon on July 25, 2020, 02:55:07 am
Ok.. I mean maybe the confusion was the part that says "don't you think?".
Well, that and some other small things that initially lead me to believe you were directly responding to my post. Only some things didn't made any sense in the context of my post.

Quote
I'm not native english speaker, so I don't know how to say that to anyone instead of using the 'you'. That you was meant to anyone, not specifically the previous post.
No problem, I think you are perfectly fine expressing yourself in English, and when in doubt we can ask  :). My native tongue also isn't English...

Quote
And well feel free to criticize my response anyways. The idea is to get the best solution I think, no one will have the right answer at the first, not even me or you or anyone. For that is the discussion forum.
Oh, I am sure we do not have the solution. Especially when it comes to the best solution for GetMem.

Each and every time I come up with something then it does seem to require some form of moderation/verification. I believe it just comes with the territory and that there is no other way around it.

edit: typos removed
Title: Re: Online Package Manager
Post by: lainz on July 25, 2020, 03:26:28 am
Oh, I am sure we do not have the solution. Especially when it comes to the best solution for GetMem.

Each and every time I come up with something then it does seem to require some form of moderation/verification. I believe it just comes with the territory and that there is no other way around it.

Yes, take as example the javascript npm repository, when virus can take your entire project. For that is I think was decided the current form where a single person maintains it (OPM).

Yes you need to pay moderators if you want a person looking for virus or spam all day  :)
Title: Re: Online Package Manager
Post by: TRon on July 25, 2020, 04:43:10 am
If we will add support to anyone registered in the OPM website to add packages in the future, what prevents that me or anyone else fork and publish any kind of projects, even abandoned projects or 1 line of code projects, empty packages and so on?
For sure that could pose a problem.

However, and please correct me if wrong, there would also be a supervisor/admin (or other trusted member(s)) that has/have the capability of noticing such attempts and block the account.

How does this work with access to Free Pascal sources ? Am I able to apply for access ? If I am, am I then granted access to the core components right from the start ?

There would be something serious wrong, in case I could (I would create havoc there, intended or not  :P )

Usually in such cases you are only granted access to particular parts of the source-tree (if at all) after some form of validation process.

Of course, even then things could go wrong in case of a serious dispute between people.

Quote
If we keep thinking that GetMem will do all the job, everything is up to him finally don't you think that?
Personaly I would like to see a solution where getmem is able to deligate most if his current work, preferably in a safe manner. At least to a degree where he is able to feel comfortable.

Quote
If the website will have a package asociated with an author, that doesn't add the relationship of maintainer of the package?
The author should be the one that authored the code. Of course this doesn't necessarily mean that the author is the maintainer (although in my book it is, otherwise don't supply the package for OPM in case you are not willing to be so).

You can see that in the example of benibela's internet-tools. He is the actual author of the used code, but as far as I am able to tell he has nothing to do with the packages that is/was present in OPM.

That is a big concern because of the following reasons:
- code used for the OPM package is not available (anymore), e.g. modified source-code
- original developer isn't responsible for the state of the OPM package and in this case doesn't even has any knowledge it was part of OPM.

Despite that the package happily pointed the user to the original repo and original developer, misleading me as end-user in the process.

Quote
Let's say we start adding all packages to GetMem, as new members register they can take his projects. Finally the projects that are still owned by GetMem are the 'not maintained' by his original author at least.
Well, GetMem mentioned not wanting to go through the complete list of packages in order to determine the abandoned ones.

I understand that perfectly.

I made some small steps in going through the list and see if the source in OPM matches those of the original project repo/author and it is tedious to do so.
Title: Re: Online Package Manager
Post by: lainz on July 25, 2020, 05:37:57 am
>>Personaly I would like to see a solution where getmem is able to deligate most if his current work, preferably in a safe manner. At least to a degree where he is able to feel comfortable

I think that's is the point.

Yes a site that's restricted is a good idea. Not so open like anyone can post but a safe place.
Title: Re: Online Package Manager
Post by: balazsszekely on July 27, 2020, 07:25:01 am
Sorry for the late reply, I was away for the weekend. 

@lainz
Quote
Ok, I'm using postgres, so I know how to use it. About the console application, I've coded some endpoints in pascal as well, I can't remember wich tools used but is just like do the query to the database and return as json.

About the main json, maybe an endpoint called main.json will do the trick  :) Like it generates the json file with all the packages. Of couse is not optimal because it needs to download a huge file, but maybe adding some pagination will do.

And web interfaces is what I do most of the time, so I can help, but we need to organize in some way
Thank you! I can also handle the database part, but web development isn't my strong point. The fact that you are willing to help, it means a lot to me.

Quote
of course is a lot of work and maybe you as me want to take weekends for fun not to keep coding like in the whole week
Exactly! To make things worse, I have two small children. Coding in my free time, instead of playing with my kids is a sin in my opinion. :)



@TRon
Quote
However, and I express it gladly again, my main concern is/was about packages that are indeed abandoned, then somehow ended up in OPM _and_ doing so by using different source-code.

It seems perfectly fine for blissfully unaware reactors to point me to how FOSS works (which, for these kind of things doesn't btw) but the above situation, for me personally, is a complete no-no.

Either you use the original sources that are abandoned (and perhaps not work) or you take over the project so that you are able to make changes to the original project and allow for others to take note of that.

Simply making changes to an abandoned project to make it work, adding it to OPM and then pointing towards the original repo/author, crossing fingers no-one will ever notice is just plain rude to everybody except for the one making use of these kind of tactics
I agree, but the vast majority of the packages are submitted by forum users like you. Perhaps I should do a background check for each package, but this would require a tremendous amount of time, so I only remove binaries to prevent a possible infection. Please note that some well known package can contain binaries(dll, so), but it was explicitly requested by the package developer, without them the package wouldn't work properly. By the way I removed Internettools from OPM, the package is actively developed and the author regularly visits this forum, as you correctly mentioned in one of your previous posts. 

Quote
Personaly I would like to see a solution where getmem is able to deligate most if his current work, preferably in a safe manner. At least to a degree where he is able to feel comfortable.
That would be great! This project is no longer something I enjoy.
Title: Re: Online Package Manager
Post by: TRon on August 01, 2020, 03:17:19 am
I agree, but the vast majority of the packages are submitted by forum users like you. Perhaps I should do a background check for each package, but this would require a tremendous amount of time, so I only remove binaries to prevent a possible infection.
Please note that some well known package can contain binaries(dll, so), but it was explicitly requested by the package developer, without them the package wouldn't work properly.
A good thing that you at least uphold some standards that you are able to manage. However, it raises another concern, namely the integrity of the code itself.

I fully understand that you do not have the time to check each and every offered package yourself.

How about not accepting any packages that do not have an origin for their sources ? That is a thing that could be automated ? Each package contain sources, and they should match with those from their origin. In case it doesn't then such package will not be accepted or indicated as a package without (official/matching) origin.

That will put some of the burden back to the submitter. I fully realise that will probably also mean less packages being submitted. However, since i've given some of these things some though, I don't think you are able to relieve yourself without making some of such (perhaps harsh) decisions.

afaik people who genuinely maintain a project that support OPM would have no issue whatsoever with such a rule as they already have this kind of infrastructure set up.

At least that way the end-user would be able to either not being offered untrusted sources or at least ones that are indicated as such (in which case the end-user can decide him/herself if it's worth the trouble, e.g. you would probably not have heard from me in the first place instead of being a pita now  ;) )

Quote
By the way I removed Internettools from OPM, the package is actively developed and the author regularly visits this forum, as you correctly mentioned in one of your previous posts. 
Thank you for doing so. Although that would perhaps be a bummer for the person who created and submitted the package, it is imho better this way.

Quote
That would be great! This project is no longer something I enjoy.
I feel your burden there. In that regards I really wish I could be of more help. Note that i'm often thinking about how things could be improved but, it seems there are so many obstacles in the way that things become stuck when working out solutions that have a too naive approach.

One of the things I still miss a little is your input. Perhaps you already expressed yourself in the past (that I am unaware off) but it would be nice to know what you yourself think could be done to relieve your stress. And by that I meant without just simply turning things over to someone else. You must have some idea's about that, or not ?

I can suggest a multitude of changes that could perhaps improve things but for some of them I have no idea if they are actually feasible to realise (without too much work).

For example, I've seen a mention of some sorts of quality system so that users could submit their experience or offer a grade for the package. Bad experience, bad grade. Good experience, good grade. Too much bad grades call for (manual) inspection and/or removal. At the same time you mentioned that being a shiteload of work for you to be able to incorporate such a thing into OPM (not to mention adding/maintaining an infrastructure for keeping track of that information).

In theory it is a good idea, as it would also be able to gather some information with regards to popularity of a package (although perhaps you are able to see some of that already because of the number of downloads/installations of a particular package). The more a particular package is valued the more attention it deserves, in case people report issues. But in the end we don't know if self-regulating in such a way is going to work for OPM.
Title: Re: Online Package Manager
Post by: wp on August 02, 2020, 12:32:06 pm
GetMem, I need to work on the JVCL contribution to OPM because the JvPascalInterpreter package does not compile on 64 bit and this prevents usage of the OPM installation even if the user does not need it at all.

Is there a way that I can keep this package within the OPM-zip (JvPascalInterpreter does work on 32 bit) but exclude it from the default OPM installation?
Title: Re: Online Package Manager
Post by: Soner on August 02, 2020, 03:55:48 pm
GetMem, I need to work on the JVCL contribution to OPM because the JvPascalInterpreter package does not compile on 64 bit and this prevents usage of the OPM installation even if the user does not need it at all.

Is there a way that I can keep this package within the OPM-zip (JvPascalInterpreter does work on 32 bit) but exclude it from the default OPM installation?
wp I use that for such cases:
Code: Pascal  [Select][+][-]
  1. unit Unit1;
  2. {$mode objfpc}{$H+}
  3. interface
  4.  
  5. {$IfDef CPU64}
  6.   //here code for 64bit or warn
  7.   {$warning you can't use this unit  for cpu64}
  8. implementation
  9. {$else}
  10. //code 32bit cpu
  11. implementation
  12. {$EndIf}
  13. end.
  14.  
Title: Re: Online Package Manager
Post by: lainz on August 02, 2020, 05:03:41 pm
Hi, there is a new version of BGRABitmap that fixes compilation for Linux (of BGRAControls)
https://forum.lazarus.freepascal.org/index.php/topic,24239.msg372105.html#msg372105

As well the directory of BGLControls has changed to solve the compilation problem with FPC 3.2
Title: Re: Online Package Manager
Post by: balazsszekely on August 03, 2020, 11:53:50 am
@TRon
Quote
How about not accepting any packages that do not have an origin for their sources ? That is a thing that could be automated ? Each package contain sources, and they should match with those from their origin. In case it doesn't then such package will not be accepted or indicated as a package without (official/matching) origin.

That will put some of the burden back to the submitter. I fully realise that will probably also mean less packages being submitted. However, since i've given some of these things some though, I don't think you are able to relieve yourself without making some of such (perhaps harsh) decisions.

afaik people who genuinely maintain a project that support OPM would have no issue whatsoever with such a rule as they already have this kind of infrastructure set up.

At least that way the end-user would be able to either not being offered untrusted sources or at least ones that are indicated as such (in which case the end-user can decide him/herself if it's worth the trouble, e.g. you would probably not have heard from me in the first place instead of being a pita now  ;) )
OK. From now on, I will pay more attention to submitted packages and their sources. Unfortunately the damage is already done, nowadays I rarely add new packages to the repository, only update old ones. If you notice some issues, please let me know and we(the community) can decide what to do next: create a fork, delete it from OPM, etc...

Quote
One of the things I still miss a little is your input. Perhaps you already expressed yourself in the past (that I am unaware off) but it would be nice to know what you yourself think could be done to relieve your stress. And by that I meant without just simply turning things over to someone else. You must have some idea's about that, or not ?
As I mentioned in one of my previous post, we should create a database(https://packages.lazarus-ide.org/) and implement a login system, where package maintainers can update their packages without my intervention, via OPM or web interface. Also forum user can rate packages. @Lainz offered to help, but still there is too much work, even for two persons.   

Quote
For example, I've seen a mention of some sorts of quality system so that users could submit their experience or offer a grade for the package. Bad experience, bad grade. Good experience, good grade. Too much bad grades call for (manual) inspection and/or removal. At the same time you mentioned that being a shiteload of work for you to be able to incorporate such a thing into OPM (not to mention adding/maintaining an infrastructure for keeping track of that information).

In theory it is a good idea, as it would also be able to gather some information with regards to popularity of a package (although perhaps you are able to see some of that already because of the number of downloads/installations of a particular package). The more a particular package is valued the more attention it deserves, in case people report issues. But in the end we don't know if self-regulating in such a way is going to work for OPM.
This is already implemented locally, you can click and rate various packages(see rating column in OPM), but is kinda useless, until the ratings are not centralized.



@wp
Quote
Is there a way that I can keep this package within the OPM-zip (JvPascalInterpreter does work on 32 bit) but exclude it from the default OPM installation?
Yes it is. I updated the package. JvPascalInterpreter is no longer installed by default.


@lainz
Quote
Hi, there is a new version of BGRABitmap that fixes compilation for Linux (of BGRAControls)
https://forum.lazarus.freepascal.org/index.php/topic,24239.msg372105.html#msg372105

As well the directory of BGLControls has changed to solve the compilation problem with FPC 3.2
Done. I updated BGRABitmap.
Title: Re: Online Package Manager
Post by: wp on August 03, 2020, 12:47:19 pm
Quote
Is there a way that I can keep this package within the OPM-zip (JvPascalInterpreter does work on 32 bit) but exclude it from the default OPM installation?
Yes it is. I updated the package. JvPascalInterpreter is no longer installed by default.
Thank you.
Title: Re: Online Package Manager
Post by: ASBzone on August 03, 2020, 07:17:35 pm
Exactly! To make things worse, I have two small children. Coding in my free time, instead of playing with my kids is a sin in my opinion.

Amen!  Don't fall into the trap of deprioritizing the family...


This project is no longer something I enjoy.

Even though I do not use OPM myself, I would like to thank you for your efforts on this project.

I also think you should consider establishing an SLA for how long it will take from the time you are aware of a request to update a package in OPM, until it has been completed.   Whether than a 2 days, 3 days, a week or whatever is reasonable for you.

Consider doing this now, while the larger discussions about how to delegate this work start up, so you will have some sanity, and everyone can get some expectations set.

Thanks again for your tireless efforts here.
Title: Re: Online Package Manager
Post by: lainz on August 04, 2020, 01:30:20 am
@lainz
Quote
Hi, there is a new version of BGRABitmap that fixes compilation for Linux (of BGRAControls)
https://forum.lazarus.freepascal.org/index.php/topic,24239.msg372105.html#msg372105

As well the directory of BGLControls has changed to solve the compilation problem with FPC 3.2
Done. I updated BGRABitmap.

Thanks  :)
Title: Re: Online Package Manager
Post by: balazsszekely on August 04, 2020, 06:07:38 pm
@ASBzone
Thank you for your kind words and suggestions.
Title: Re: Online Package Manager
Post by: Cyrax on August 12, 2020, 07:31:19 pm
Why OPM doesn't check if there exists already downloaded/installed package in the user system so it won't need to be redownloaded again during (re) installation process?
Title: Re: Online Package Manager
Post by: ASBzone on August 12, 2020, 07:56:26 pm
@ASBzone
Thank you for your kind words and suggestions.

You are very welcome.  :D
Title: Re: Online Package Manager
Post by: balazsszekely on August 12, 2020, 08:57:08 pm
@Cyrax
Quote
Why OPM doesn't check if there exists already downloaded/installed package in the user system so it won't need to be redownloaded again during (re) installation process?
Uncheck OPM->Options->General->Always force download and extract.
Title: Re: Online Package Manager
Post by: lainz on August 23, 2020, 11:44:51 pm
Hi GetMem, I've modified a bit the website to look fine on mobile, and as well I've put a material design theme for the site
https://forum.lazarus.freepascal.org/index.php/topic,51174.msg375262.html#msg375262
Title: Re: Online Package Manager
Post by: balazsszekely on August 24, 2020, 08:24:13 am
Hi GetMem, I've modified a bit the website to look fine on mobile, and as well I've put a material design theme for the site
https://forum.lazarus.freepascal.org/index.php/topic,51174.msg375262.html#msg375262
Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on August 24, 2020, 08:25:31 am
Hi All,

User @paweld created a nice api for the rating system and the automatic package update: https://github.com/paweld/OPM2a-api . Thanks again Pawel! After the database server is set up, we can work on the details. As always suggestions are welcomed.
Title: Re: Online Package Manager
Post by: avra on August 24, 2020, 09:19:05 am
User @paweld created a nice api for the rating system and the automatic package update
Thanks paweld!

Please make sure that OPM2a does not delete *.dll, *.so and *.dylib binaries in pl_0_lib package.
Title: Re: Online Package Manager
Post by: marsupilami79 on November 08, 2020, 04:49:08 pm
Hello GetMem,

Zeos has released version 7.2.8 - which is a bugfix release for the 7.2 series of Zeos. Could you please update OPM?

Best regards,

Jan
Title: Re: Online Package Manager
Post by: balazsszekely on November 08, 2020, 07:54:23 pm
Hi Jan,

Quote
Zeos has released version 7.2.8 - which is a bugfix release for the 7.2 series of Zeos. Could you please update OPM?
Thank you! I will update Zeos soon.

regards,
GetMem
Title: Re: Online Package Manager
Post by: Fred vS on November 10, 2020, 03:53:27 am
Hello GetMem.

I recently installed uos package from OPM.

OPM works great, the package was installed out of the box.

But the version of uos is very old and obsolete for fpc > 3.0.0.

Could it be possible to give the last code from the site?
https://github.com/fredvs/uos

I have also a other question: In uos package there are demos.
Where people have to look to load those demos, is there a "Demos of Packages" directory?

Thanks.

Fre;D
Title: Re: Online Package Manager
Post by: balazsszekely on November 10, 2020, 01:46:31 pm
@Fred vS

Quote
I recently installed uos package from OPM.

OPM works great, the package was installed out of the box.

But the version of uos is very old and obsolete for fpc > 3.0.0.

Could it be possible to give the last code from the site?
https://github.com/fredvs/uos
I updated uos, thanks for the new version.

Quote
I have also a other question: In uos package there are demos.
Where people have to look to load those demos, is there a "Demos of Packages" directory?
I'm not sure what you mean, the demo folder is in the same directory as the uos package. The directory structrue from your github repository is preserved. OPM downloads the packages to the Lazarus config folder, usually:
    Windows: "C:\Users\<User name>\AppData\Local\lazarus\onlinepackagemanager\packages\"
         Linux:  ~/.lazarus/onlinepackagemanager/packages/
This is all configurable in the option.
Title: Re: Online Package Manager
Post by: Fred vS on November 10, 2020, 02:22:51 pm
Quote
I updated uos, thanks for the new version.

Many thanks!

Quote
OPM downloads the packages to the Lazarus config folder, usually:
    Windows: "C:\Users\<User name>\AppData\Local\lazarus\onlinepackagemanager\packages\"
         Linux:  ~/.lazarus/onlinepackagemanager/packages/

Ha, ok, thanks!

Fre;D
Title: Re: Online Package Manager
Post by: wp on December 02, 2020, 01:38:54 pm
GetMem I have to bother you again with a new version because LazMapViewer does not compile with Laz3.2 any more. Could you update OPM to the new version https://sourceforge.net/projects/lazarus-ccr/files/LazMapViewer/lazmapviewer-v0.2.4.zip/download?
Title: Re: Online Package Manager
Post by: balazsszekely on December 02, 2020, 01:58:18 pm
@wp
Quote
GetMem I have to bother you again with a new version because LazMapViewer does not compile
No problem!

Quote
Could you update OPM to the new version https://sourceforge.net/projects/lazarus-ccr/files/LazMapViewer/lazmapviewer-v0.2.4.zip/download?
I updated the package. Thanks for the new version.
Title: Re: Online Package Manager
Post by: El Salvador on December 11, 2020, 05:08:46 pm
Hi GetMem,

I just tried to install JPLib in Lazarus 2.0.10 on Linux (Ubuntu). I have issues about code only for Windows. I checked in original repository and I saw this commit https://github.com/jackdp/JPLib/commit/e226175b5b4227ad9b6dbb059f69ebe02b35d0fa#diff-e428fceacce8e331526c5ba5d2b112f5e1dafa8db87eccdbba7c11eef88053e7 . Can you update the package?

Thank you very much!
Title: Re: Online Package Manager
Post by: balazsszekely on December 11, 2020, 05:37:23 pm
Hi El Salvador,

Quote
I just tried to install JPLib in Lazarus 2.0.10 on Linux (Ubuntu). I have issues about code only for Windows. I checked in original repository and I saw this commit https://github.com/jackdp/JPLib/commit/e226175b5b4227ad9b6dbb059f69ebe02b35d0fa#diff-e428fceacce8e331526c5ba5d2b112f5e1dafa8db87eccdbba7c11eef88053e7 . Can you update the package?

Thank you very much!

I updated the package. Thank you!
Title: Re: Online Package Manager
Post by: wp on December 21, 2020, 12:11:17 pm
GetMem, due to the naming conflict between the OPM package laz_rgbgraphics and the CCR-SVN package lazrgbgraphics (https://forum.lazarus.freepascal.org/index.php/topic,12674.msg387759.html#msg387759) I combined both packages into https://sourceforge.net/projects/lazarus-ccr/files/LazRGBGraphics/LazRGBGraphics%201.0/rgbgraphics-v1.0.zip/download. It contains the files of the CCR repository (including example) but has the units stored in a separate folder "source". And it contains both .lpk files. Normally this would be harmful due to name clashes, but since they are runtime packages, the IDE accepts this situation, and breaking of user code can be avoided this way. There is also a readme.txt explaining the situation.

I would appreciate if you could replace the current rgbgraphics package in OPM by the new version. I also created an update.json (https://sourceforge.net/projects/lazarus-ccr/files/LazRGBGraphics/OPM/update_rgbgraphics.json/download), but I am not 100% sure whether it is correct syntactically - please check it before using.
Title: Re: Online Package Manager
Post by: balazsszekely on December 21, 2020, 01:27:14 pm
wp,

Thank you! I replaced the package.
Title: Re: Online Package Manager
Post by: Ally on December 23, 2020, 12:29:34 pm
Hello GetMem,

my package facilitates the controlled entry of numbers.
Can you provide it in the Online Package Manager?

Greetings Roland


Here is a brief description:

--------------------------------------------------------------------------------------------------------------------------
DecimalNumberEdit is a component for entering numbers.
--------------------------------------------------------------------------------------------------------------------------
The input field only accepts valid numbers that can be limited using the Matrix property.

The component provides four new properties.

1. Matrix (string)
   This property defines the number format.

   Examples:
   99.99 Allows you to enter values ​​in the range from 0 to 99.99 with two decimal places.
   -50.9 Allows you to enter values ​​in the range from -50.9 to 50.9 with one decimal place.
   250,000 Allows you to enter values ​​in the range from 0 to 250 with three decimal places.
   -500 Allows the entry of values ​​in the range from -500 to 500 without decimal places.


2. Value (Extended)
   Returns the extended value of the entered value.
   This value can be evaluated during input and represents the value currently entered in the input field.


3. EnterKey (Boolean)
   Allows the use of the Enter key in the same way as the Tab key.


4. WarningTone (Boolean)
   Emits a warning tone if impermissible entries are made.


The localization settings such as the DecimalSeparator is automatically adopted.
Should the project also use the localization settings under Linux / Unix,
you should add the entry clocale to the project uses.

Example:

uses
  {$ IFDEF UNIX} {$ IFNDEF DARWIN}
   clocale, // sets the localization settings (number, date and time formats)
  {$ ENDIF} {$ ENDIF}
  SysUtils, Forms, ......

--------------------------------------------------------------------------------------------------------------------------
NumberEdit is a component for entering whole numbers.
--------------------------------------------------------------------------------------------------------------------------
The input field only accepts the digits 0-9, leading zeros are also permitted.

The component provides two new properties.

1. EnterKey (Boolean)
   Allows the use of the Enter key in the same way as the Tab key.


2. WarningTone (Boolean)
   Emits a warning tone if impermissible entries are made.
Title: Re: Online Package Manager
Post by: balazsszekely on December 23, 2020, 03:48:22 pm
Hi Roland,

I added the package to OPM. Thank you!
Title: Re: Online Package Manager
Post by: Ally on December 23, 2020, 04:14:06 pm
Hello GetMem,

thank you and wish you a merry christmas and happy new year.

Roland
Title: Re: Online Package Manager
Post by: wp on January 03, 2021, 12:30:31 am
I am writing a wiki page for the TLazMapViewer package. GetMem, could you please replace the home page entry for this package in OPM by this new link: https://wiki.lazarus.freepascal.org/LazMapViewer
Title: Re: Online Package Manager
Post by: CLA on January 03, 2021, 09:33:46 am
Great!
Is the wiki complete yet? I see a reference to GPsObject but the explanation seems not there yet.

GPSItems: TGPSObjectList: list of GPS objects assigned to the MapView See below for details.
Title: Re: Online Package Manager
Post by: balazsszekely on January 03, 2021, 02:28:35 pm
@wp
Quote
I am writing a wiki page for the TLazMapViewer package. GetMem, could you please replace the home page entry for this package in OPM by this new link: https://wiki.lazarus.freepascal.org/LazMapViewer
I updated the home page entry to: https://wiki.lazarus.freepascal.org/LazMapViewer
Title: Re: Online Package Manager
Post by: wp on January 03, 2021, 07:25:18 pm
@GetMem: I had tp upload a new version of the ChemText package because the old one did not compile any more after recent LCL changes: https://sourceforge.net/projects/lazarus-ccr/files/chemtext/chemtext-0.1.4.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on January 03, 2021, 08:19:04 pm
@wp
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: lainz on January 03, 2021, 08:36:12 pm
Hi GetMem. Can you add bgrabitmap and bgracontrols I can't remember the last version numbers but we have new SVG controls and stuff. Sorry if its already up to date. Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on January 03, 2021, 08:54:58 pm
@lainz
I did not update BGRABitmap/BGRAControls a long time ago. It's done now. Thanks for the new version.
Title: Re: Online Package Manager
Post by: lainz on January 03, 2021, 11:47:44 pm
Thankyou! Here a drawing for you-  :)

I did that drawing together with my mom, she draws better than me, but we understand each other, so it looks like one person did it all.
Title: Re: Online Package Manager
Post by: balazsszekely on January 04, 2021, 06:48:55 am
@lainz
Quote
Thankyou! Here a drawing for you-  :)

I did that drawing together with my mom, she draws better than me, but we understand each other, so it looks like one person did it all.
Nice drawing. Thank you!
Title: Re: Online Package Manager
Post by: avra on January 04, 2021, 04:19:02 pm
I am writing a wiki page for the TLazMapViewer package.
Thank you! It's much appreciated.
Title: Re: Online Package Manager
Post by: El Salvador on January 07, 2021, 08:03:17 pm
@GetMem A question for Mormot package: why are there no sqlite static files in mormot package, available in OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on January 07, 2021, 08:11:38 pm
@El Salvador
Quote
A question for Mormot package: why are there no sqlite static files in mormot package, available in OPM?
Forum user @mdbs99 created the Mormot package for OPM. You can read more details here:
https://forum.lazarus.freepascal.org/index.php/topic,34297.msg327639.html#msg327639
Personally I don't use Mormot, so I don't know anything about sqlite static files.
Title: Re: Online Package Manager
Post by: El Salvador on January 08, 2021, 02:58:05 pm
@El Salvador
Quote
A question for Mormot package: why are there no sqlite static files in mormot package, available in OPM?
Forum user @mdbs99 created the Mormot package for OPM. You can read more details here:
https://forum.lazarus.freepascal.org/index.php/topic,34297.msg327639.html#msg327639
Personally I don't use Mormot, so I don't know anything about sqlite static files.
Ahhh. No problem. Anyway static files are sqlite3 binary files needed for FPC static linking (if you use unit SynSQLite3Static) and must keep in sync these binaries with mormot source code (otherwise, SynSQLite3Static will complain about invalid versions, and some random/unexpected errors may occur).
Title: Re: Online Package Manager
Post by: zgabrovski on January 14, 2021, 08:42:43 am
Please, find attached a new package with DBTreeView and DBCntrlGrid components.

https://bugs.freepascal.org/view.php?id=38336

The Github repo:

https://github.com/ZGabrovski/DBTreeViewAndDBCntrlGrid
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2021, 09:36:01 am
@zgabrovski

Quote
Please, find attached a new package with DBTreeView and DBCntrlGrid components.

https://bugs.freepascal.org/view.php?id=38336

The Github repo:

https://github.com/ZGabrovski/DBTreeViewAndDBCntrlGrid

I added DBTreeViewAndDBCntrlGrid to OPM. Thanks for the package!
Title: Re: Online Package Manager
Post by: zgabrovski on January 21, 2021, 07:54:29 pm
There is a lot of bugfixes in TDBCntrlGrid.
You can update the package.
Title: Re: Online Package Manager
Post by: balazsszekely on January 21, 2021, 08:31:55 pm
@zgabrovski
Quote
There is a lot of bugfixes in TDBCntrlGrid.
You can update the package.

Thank you! I updated the package.
Title: Re: Online Package Manager
Post by: zgabrovski on January 25, 2021, 06:33:06 pm
Please find attached new bugfix update.
Regards,
Zdravko
Title: Re: Online Package Manager
Post by: balazsszekely on January 25, 2021, 08:19:35 pm
@zgabrovski
Quote
Please find attached new bugfix update.
Regards,
Zdravko
Done! Thank you.
Title: Re: Online Package Manager
Post by: zgabrovski on January 27, 2021, 07:52:21 pm
New bugfix update.
The DBCntrlGrid was totally rewritten (logic for non visual panes update).
I add a new "KeyField" property - to improve a way of refresh of the cashe.


Title: Re: Online Package Manager
Post by: wp on January 27, 2021, 08:03:31 pm
Hmm...

Nice to see progress in the packages. But, on the other hand OPM is not a development platform and is supposed to distribute "stable" packages only (whatever that means).

To reduce the workload for GetMem who has to apply the changes manually I'd urge you to use your own version control system (GitHub, Gitlab, Sourceforge) and send GetMem only new versions after some degree of stability is achieved or after severe fixes.

To give your users access to your recent version you can use the "update-json" mechanism: Store the zips on your site and create an update.json with the link to this zip. Send the update-json to GetMem, and your recent version will be available to the OPM users by selecting "install from third-party repository": https://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates
Title: Re: Online Package Manager
Post by: af0815 on January 30, 2021, 09:14:10 am
Is fpExif in OPM ? I found DExif, but not fpExif. Or is the name different ?

I want to test fpExif, but i use only packages from OPM. This avoid normaly headache :-)
Title: Re: Online Package Manager
Post by: balazsszekely on January 30, 2021, 09:32:56 am
@af0815
Quote
Is fpExif in OPM ?
Apparently not.

Quote
I found DExif, but not fpExif. Or is the name different ?
Good question! I have no idea :) I only maintain the package manager, I am unfamiliar with 99% of the packages.

Quote
I want to test fpExif, but i use only packages from OPM. This avoid normaly headache :-)
I can add fpExif if needed, no problem. Form where can I download the package?
Title: Re: Online Package Manager
Post by: lucamar on January 30, 2021, 10:33:39 am
I can add fpExif if needed, no problem. Form where can I download the package?

From SourceForge; it's part of the Lazarus-CCR :)
Title: Re: Online Package Manager
Post by: balazsszekely on January 30, 2021, 10:47:15 am
I can add fpExif if needed, no problem. Form where can I download the package?

From SourceForge; it's part of the Lazarus-CCR :)

Thank you @lucamar, I will download the package later and compare it with DExif.
Title: Re: Online Package Manager
Post by: wp on January 30, 2021, 10:56:15 am
Please don't add it at the moment. I am its author and decided to not include it in OPM since it contains an issue leading to potential loss of meta data.

fpExif and dExif are different things. dExif was one of the first libraries to access EXIF metadata. However, it is badly written and has many issues. Therefore I decided some time ago to rewrite it in a "better" way.

The issue mentioned above is also present in dexif. The problem is that EXIF is a binary structure, data often are referred to by their offsets relative to a marker in the file (TIFF header). There is one particular EXIF record "MakerNote" which manufacturers can fill with additional data in an arbitrary and undocumented way. Usually they use the same structure as the rest of the EXIF segment and refer their file offsets to the TIFF marker rather than to the start of the MakerNote tag. Now, when a user of fpExif or dExif edits an EXIF tag in a way that the binary data are shifted within the file the MakerNotes are destroyed because their offsets are not corrected (because it is not documented).
Title: Re: Online Package Manager
Post by: balazsszekely on January 30, 2021, 05:47:46 pm
@wp

Thanks for the info. When fpExif is ready I will remove dExif.
Title: Re: Online Package Manager
Post by: af0815 on January 30, 2021, 06:00:59 pm
a remove is not good, because it is not the same and dExif is used for a longer time and compatibel with delphi.
fpExif is not a direct replacement, is it ?
Title: Re: Online Package Manager
Post by: wp on January 30, 2021, 07:49:02 pm
af0815 is right, do not remove dExif. fpExif is not a direct replacement (otherwise I would not have taken the time to rewrite it). It works with Delphi, though.
Title: Re: Online Package Manager
Post by: Remy Lebeau on January 30, 2021, 09:08:12 pm
Seems OPM is not up-to-date with the latest version of Indy's code on GitHub (https://github.com/IndySockets/Indy/).
Title: Re: Online Package Manager
Post by: balazsszekely on January 30, 2021, 09:52:20 pm
Seems OPM is not up-to-date with the latest version of Indy's code on GitHub (https://github.com/IndySockets/Indy/).

I'm not sure what you mean, I updated indy a few weeks ago. Just to double-check, I did a SVN update(screenshot1). The version in OPM is the same, namely r. 3662(screenshot2). Am I missing something? 
Title: Re: Online Package Manager
Post by: Remy Lebeau on January 31, 2021, 08:47:34 pm
I'm not sure what you mean, I updated indy a few weeks ago. Just to double-check, I did a SVN update(screenshot1). The version in OPM is the same, namely r. 3662(screenshot2). Am I missing something?

You are right, my bad.  OPM is up to date.  A user was submitting some changes to Indy the other day, and claimed to be using the latest version from OPM, but their copy of IdGlobal.pas was not the latest.
Title: Re: Online Package Manager
Post by: zgabrovski on February 07, 2021, 07:26:52 am
Hmm...

Nice to see progress in the packages. But, on the other hand OPM is not a development platform and is supposed to distribute "stable" packages only (whatever that means).

To reduce the workload for GetMem who has to apply the changes manually I'd urge you to use your own version control system (GitHub, Gitlab, Sourceforge) and send GetMem only new versions after some degree of stability is achieved or after severe fixes.

To give your users access to your recent version you can use the "update-json" mechanism: Store the zips on your site and create an update.json with the link to this zip. Send the update-json to GetMem, and your recent version will be available to the OPM users by selecting "install from third-party repository": https://wiki.freepascal.org/Online_Package_Manager#Create_JSON_for_updates

Sorry for the late reply.
The latest version was stable (I mean that there is no major issues) and I want kindly ask you to update in OPM. Curren vesion in OPM is buggy.
I will attach file again here.
Regards,
Zdravko


Title: Re: Online Package Manager
Post by: balazsszekely on February 07, 2021, 08:30:43 am
@zgabrovski

I updated DBTreeViewAndDBCntrlGrid. Thanks for the new version!
Title: Re: Online Package Manager
Post by: lainz on February 16, 2021, 06:42:42 pm
Hi GetMem, can you update BGRAControls? There is a fix for compilation issues

https://github.com/bgrabitmap/bgracontrols/releases/tag/v7.2
Title: Re: Online Package Manager
Post by: balazsszekely on February 16, 2021, 07:08:14 pm
Hi Lainz,

Compiling with FPC 3.2.0/Lazarus Trunk, BGRAControls gives the error in the screenshot. I checked BGRABitmap from OPM, is the latest version(v.11.3.1.0), at least according to the external json(https://raw.githubusercontent.com/bgrabitmap/bgrabitmap/master/update_BGRABitmap.json). Do I need BGRABitmap trunk? Or am I missing something obvious?
Title: Re: Online Package Manager
Post by: lainz on February 17, 2021, 12:01:39 am
Hi Lainz,

Compiling with FPC 3.2.0/Lazarus Trunk, BGRAControls gives the error in the screenshot. I checked BGRABitmap from OPM, is the latest version(v.11.3.1.0), at least according to the external json(https://raw.githubusercontent.com/bgrabitmap/bgrabitmap/master/update_BGRABitmap.json). Do I need BGRABitmap trunk? Or am I missing something obvious?

Hi, thanks for reporting, I will fix it.

Edit: Done, please download it again, it should work now with current release of BGRABitmap.
Title: Re: Online Package Manager
Post by: balazsszekely on February 17, 2021, 06:34:04 am
Quote
Hi, thanks for reporting, I will fix it.

Edit: Done, please download it again, it should work now with current release of BGRABitmap.
I updated BGRAControls. Thanks for the new version.
Title: Re: Online Package Manager
Post by: kkuba on February 20, 2021, 10:34:24 am
Would there be a chance to upgrade ZeosLib in the repository? The current version is a bit out of date, there have been two new releases since its publication. The current release is 7.2.10
Title: Re: Online Package Manager
Post by: balazsszekely on February 20, 2021, 11:19:50 am
@kkuba

Thanks for the feedback. I updated ZeosLib from https://sourceforge.net/projects/zeoslib/. According to site and the downloaded zip, the current version is 7.2.10.0, however the version inside the lpk is still 10.2.8.0. It's OK for my part, but it might be confusing for users.
Title: Re: Online Package Manager
Post by: Fred vS on February 21, 2021, 01:06:03 am
Hello GetMem.

Could you update uos?
https://github.com/fredvs/uos

Many thanks.

Fre;D
Title: Re: Online Package Manager
Post by: balazsszekely on February 22, 2021, 06:30:23 am
Hi Fre;D,

Quote
Could you update uos?
https://github.com/fredvs/uos

Many thanks.
I updated UOS. Thanks for the new version.

regards,
Getmem
Title: Re: Online Package Manager
Post by: Guva on February 24, 2021, 07:13:25 am
Could you update ray4laz
https://github.com/GuvaCode/Ray4Laz
json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json
Title: Re: Online Package Manager
Post by: balazsszekely on February 24, 2021, 07:42:36 am
Could you update ray4laz
https://github.com/GuvaCode/Ray4Laz
json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: AlexTP on February 24, 2021, 10:31:20 am
What do you think about adding these libs?
https://github.com/lalexs75/protobuf-fpc
https://github.com/iLya2IK/wchttpserver
Title: Re: Online Package Manager
Post by: balazsszekely on February 24, 2021, 11:41:02 am
What do you think about adding these libs?
https://github.com/lalexs75/protobuf-fpc
https://github.com/iLya2IK/wchttpserver
The second one does not contain an lpk file, so I cannot add it. The first one looks OK. If it's stable enough I can add it. Did you test it?
Title: Re: Online Package Manager
Post by: Jurassic Pork on February 27, 2021, 09:56:44 am
hello GetMem,
can you update my component Lazserial for a new version (0.4)   available here (https://github.com/JurassicPork/TLazSerial)
Quote
LazSerial v0.4
Serial Port Component for Lazarus
by Jurassic Pork  03/2013 02/2021
new in v0.4 version (02/2021)
 DeviceClose procedure fixed
thanks,
Friendly, J.P
Title: Re: Online Package Manager
Post by: folkeu08 on February 27, 2021, 12:18:49 pm
Hi,
JPLib and JPPack does not install under the new version 2.0.12.
Thanks to modifie it.
Thanks
Title: Re: Online Package Manager
Post by: balazsszekely on February 27, 2021, 12:27:01 pm
Hi JP,
Quote
can you update my component Lazserial for a new version (0.4)   available here
I updated Lazserial. Thanks for the new version.


Hi folkeu08,
Quote
JPLib and JPPack does not install under the new version 2.0.12. Thanks to modifie it.
What is the error? It works fine with Lazarus trunk. Since these packages are actively maintained, you should report the bug to the author(https://github.com/jackdp/JPLib and https://github.com/jackdp/JPPack). Once is fixed I can update in OPM.
Title: Re: Online Package Manager
Post by: Jurassic Pork on March 11, 2021, 11:18:20 pm
hello GetMem,
can you update my component Lazserial for a new version (0.5)   available here (https://github.com/JurassicPork/TLazSerial)
this version has been tagged and is available as the latest release (see attachment)
Quote
LazSerial v0.5
Serial Port Component for Lazarus
by Jurassic Pork  03/2013 03/2021
 new in v0.5 version (03/2021)
 Memory leak on get_serial_port_names in lazsynaser.pas fixed
Thanks to modify it in OPM

Friendly, J.P
Title: Re: Online Package Manager
Post by: balazsszekely on March 12, 2021, 06:04:50 am
@Jurassic Pork

Thank you! I updated the package.
Title: Re: Online Package Manager
Post by: Guva on March 20, 2021, 08:11:09 pm
Hello GetMem !!!
Could you please add my library
https://github.com/GuvaCode/Code-Librarian (https://github.com/GuvaCode/Code-Librarian)
update json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_CodeLibrarian.json (https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_CodeLibrarian.json)
Title: Re: Online Package Manager
Post by: balazsszekely on March 20, 2021, 08:33:58 pm
Hi indigo80,
Quote
Could you please add my library
https://github.com/GuvaCode/Code-Librarian
update json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_CodeLibrarian.json
I added the package. Thank you!
Title: Re: Online Package Manager
Post by: Soner on March 27, 2021, 12:50:39 pm
Hello GetMem,
PowerPdf should be updated with ccr-version (https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/powerpdf/).
Lazreports PDF-Addon  from lazarus-svn-version does not compile with OPM-Version of Powerpdf.

This fix (https://bugs.freepascal.org/view.php?id=37996) is missing.
Title: Re: Online Package Manager
Post by: balazsszekely on March 27, 2021, 03:16:47 pm
Hi Soner,

Please try now. I updated PowerPDF.
Title: Re: Online Package Manager
Post by: Soner on March 28, 2021, 01:10:48 pm
Hi Soner,

Please try now. I updated PowerPDF.
Thanks, I recompiled with opm-version now. It works.
Title: Re: Online Package Manager
Post by: Guva on April 27, 2021, 12:14:48 pm
Hello GetMem !!!
Please update https://github.com/GuvaCode/Ray4Laz
Title: Re: Online Package Manager
Post by: balazsszekely on April 27, 2021, 02:00:28 pm
Hi indigo80,

Quote
Please update https://github.com/GuvaCode/Ray4Laz
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: jujibo on May 09, 2021, 07:28:24 pm
Hi GetMem

There is a new version of jujiboutils package.

https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/jujiboutils-2.4.zip/download (https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/jujiboutils-2.4.zip/download)


Would you be so kind to update it?


Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on May 10, 2021, 07:21:48 am
Hi jujibo,

I updated the package. Thanks for the new version.
Title: Re: Online Package Manager
Post by: AlexTP on May 17, 2021, 12:47:48 pm
An issue with the main dlg and floating tooltip.
Ubuntu x64 20.4.
Tooltip (short package info) is showing but __gets the focus__. So title of main dlg is becoming pale.
Pls make this tooltip not getting focus. Better set to tooltip window style csNoFocus and StayOnTop style.
Title: Re: Online Package Manager
Post by: balazsszekely on May 19, 2021, 08:19:10 am
An issue with the main dlg and floating tooltip.
Ubuntu x64 20.4.
Tooltip (short package info) is showing but __gets the focus__. So title of main dlg is becoming pale.
Pls make this tooltip not getting focus. Better set to tooltip window style csNoFocus and StayOnTop style.
Sometimes, when the description/license text is too long, you have to scroll down to read the entire text so the tooltip window must receive focus. If you really want, we can add another checkbox in the options. If checked the hint windows does not receive focus, but to be honest, I don't think it's worth the effort.
Title: Re: Online Package Manager
Post by: Remy Lebeau on May 21, 2021, 04:08:35 am
@GetMem, can you update Indy, please?  There have been 18 checkins to Indy's GitHub repository since the last time Indy was updated in OPM.

I realize this has been a manual process for you so far.  So I'm considering setting up GitHub Releases for future Indy releases.

It looks like the .zip file currently in OPM is just a copy of Indy's /Lib source folder renamed to /Indy10 and pruned a little.  For a seamless transition, I would have to replicate that same .zip structure, correct?  I could setup new releases in GitHub with that .zip structure, but that would require making a new branch of the repository for each release, and the root folder would be /Lib, unless I rename it to /Indy10 in each branch (now, I'm starting to wonder if most of what is currently in Indy's repository is not actually needed by end users and should be moved to a separate repository just for Indy's team members).

If the JSON file used by OPM is updated to point at these GitHub releases for downloads, would that different base folder name cause issues when Lazarus users try to update their existing Indy installations?  Otherwise, worst case, I suppose I could just create new .zip files manually and attach them to each GitHub release, rather than (or addition to) linking each release to the repository code.
Title: Re: Online Package Manager
Post by: balazsszekely on May 21, 2021, 10:21:27 am
Quote
@GetMem, can you update Indy, please?  There have been 18 checkins to Indy's GitHub repository since the last time Indy was updated in OPM.
I updated Indy. Thanks for the new version!

Quote
I realize this has been a manual process for you so far.  So I'm considering setting up GitHub Releases for future Indy releases.
It looks like the .zip file currently in OPM is just a copy of Indy's /Lib source folder renamed to /Indy10 and pruned a little.  For a seamless transition, I would have to replicate that same .zip structure, correct?  I could setup new releases in GitHub with that .zip structure, but that would require making a new branch of the repository for each release, and the root folder would be /Lib, unless I rename it to /Indy10 in each branch
Hopefully in the near future we will create a platform, where each package maintainer can update their packages. The process already started, but is painfully slow. Until then I prefer to update the packages manually. It's really simple and it only takes couple of minutes:
1. SVN update
2. Copy files
3. Change lpk to match build number with revision number(as in the attached screenshot)
4. Zip then upload to https://packages.lazarus-ide.org/

In my opinion creating a new branch on GitHub it's not worth it. Instead can you please post a message here when it's time to update? I will try update the package in 24 hours, except perhaps in weekends.
Title: Re: Online Package Manager
Post by: cappe on May 21, 2021, 10:48:38 am
@GetMem, can you update Indy, please?  There have been 18 checkins to Indy's GitHub repository since the last time Indy was updated in OPM.

I realize this has been a manual process for you so far.  So I'm considering setting up GitHub Releases for future Indy releases.

It looks like the .zip file currently in OPM is just a copy of Indy's /Lib source folder renamed to /Indy10 and pruned a little.  For a seamless transition, I would have to replicate that same .zip structure, correct?  I could setup new releases in GitHub with that .zip structure, but that would require making a new branch of the repository for each release, and the root folder would be /Lib, unless I rename it to /Indy10 in each branch (now, I'm starting to wonder if most of what is currently in Indy's repository is not actually needed by end users and should be moved to a separate repository just for Indy's team members).

If the JSON file used by OPM is updated to point at these GitHub releases for downloads, would that different base folder name cause issues when Lazarus users try to update their existing Indy installations?  Otherwise, worst case, I suppose I could just create new .zip files manually and attach them to each GitHub release, rather than (or addition to) linking each release to the repository code.

thanks for the new version of indy. Without indy I would not have been able to make my future software (I am a little programmer with two dogs).
Title: Re: Online Package Manager
Post by: Remy Lebeau on May 21, 2021, 06:11:35 pm
Hopefully in the near future we will create a platform, where each package maintainer can update their packages.

Cool!

Until then I prefer to update the packages manually.
...
Instead can you please post a message here when it's time to update? I will try update the package in 24 hours, except perhaps in weekends.

Fair enough.
Title: Re: Online Package Manager
Post by: Guva on May 30, 2021, 09:46:15 am
Hello GetMem !!! update please Ray4Laz (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/3.7.0.0.zip)

https://github.com/GuvaCode/Ray4Laz (https://github.com/GuvaCode/Ray4Laz)
Title: Re: Online Package Manager
Post by: balazsszekely on May 31, 2021, 07:25:42 am
Hi indigo80,

Quote
Hello GetMem !!! update please Ray4Laz
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: lainz on May 31, 2021, 03:12:22 pm
Hi GetMem, how are you doing?

Can you update BGRAControls, it's a small fixes release.

Thanks!!  :)
Title: Re: Online Package Manager
Post by: balazsszekely on June 02, 2021, 01:23:24 pm
Hi lainz,

Sorry for the late response. I updated BGRAControls, thanks for the new version.
Title: Re: Online Package Manager
Post by: lainz on June 03, 2021, 01:48:42 am
Thankyou GetMem  :)

Have a nice day.
Title: Re: Online Package Manager
Post by: Remy Lebeau on June 08, 2021, 10:38:01 pm
I just posted a minor update to Indy, please update OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on June 09, 2021, 06:25:12 am
@Remy Lebeau
Quote
I just posted a minor update to Indy, please update OPM.
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: Fahmy Rofiq on June 12, 2021, 12:03:02 am
Please update SpkToolbar... Its already 0.1.7 on Lazarus CCR
Title: Re: Online Package Manager
Post by: wp on June 12, 2021, 12:33:16 am
Unlike other packages on OPM, this package is maintained (by myself), so please let me decide when it is ready for a new release, and do not put the burden of creating a release on Getmem.

But I agree that it's been quite a while that v0.1.7 exists. So, let me see that I can prepare a new release for OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on June 12, 2021, 09:31:58 am
@wp

When it's ready please let me know and I will update the package(but not before Monday because I'm not home).
Title: Re: Online Package Manager
Post by: wp on June 12, 2021, 06:14:23 pm
GetMem, the v0.1.7 of SpkToolBar now is in the Files section of CCR: https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/spktoolbar-0.1.7.zip/download. The update-json is at its usual place, https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/OPM/update_spktoolbar.json/download.

I would appreciate if you could update the OPM version. Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on June 13, 2021, 08:30:49 pm
GetMem, the v0.1.7 of SpkToolBar now is in the Files section of CCR: https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/spktoolbar-0.1.7.zip/download. The update-json is at its usual place, https://sourceforge.net/projects/lazarus-ccr/files/SpkToolbar/OPM/update_spktoolbar.json/download.

I would appreciate if you could update the OPM version. Thanks.
Thank you! I updated the package.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 01, 2021, 09:39:00 pm
I just posted a minor update to Indy, please update OPM.

New OPM update needed, thanks.  Not so minor an update this time, as I have checked in a bunch of branches that have been pending for awhile.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 01, 2021, 09:40:42 pm
do not put the burden of creating a release on Getmem.

But he wants it that way :D

Hopefully in the near future we will create a platform, where each package maintainer can update their packages. The process already started, but is painfully slow. Until then I prefer to update the packages manually. It's really simple and it only takes couple of minutes
Title: Re: Online Package Manager
Post by: Fred vS on July 01, 2021, 09:54:18 pm
Hello GetMem.

Could you please upgrade OPM-uos (https://github.com/fredvs/uos/) to last commit?
There are some fixes for recording into ogg files.

Also uos is in section "Others", could it be possible to set it to "Multimedia"?

Thanks and have a perfect day.

Fre;D
Title: Re: Online Package Manager
Post by: balazsszekely on July 02, 2021, 08:07:41 am
@Remy,  @Fred

I' m on vacation now, I will update the packages as soon as possible.
Title: Re: Online Package Manager
Post by: balazsszekely on July 03, 2021, 09:39:25 am
@Fred
I updated UOS, I also changed category from "Others" to "Multimedia". Thanks for the new version.

@Remy
Unfortunately I cannot compile the latest version of Indy(r. 3910). Please see attached image for more details.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 05, 2021, 07:45:33 pm
@Remy
Unfortunately I cannot compile the latest version of Indy(r. 3910). Please see attached image for more details.

Fixed.
Title: Re: Online Package Manager
Post by: balazsszekely on July 06, 2021, 02:12:48 pm
Fixed.
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: Okoba on July 06, 2021, 03:50:58 pm
GetMem, as FPC and Lazarus are going to Git and Gitlab, you can do a pull request based repo thing like some other package managers. Also it can have your hosted page too. It can remove the pressure of having to make a platform as you stated and eases the work of package maintainers too. A couple of terminal lines and you are there.
Title: Re: Online Package Manager
Post by: balazsszekely on July 07, 2021, 08:12:14 am
@OkobaPatino

Quote
GetMem, as FPC and Lazarus are going to Git and Gitlab, you can do a pull request based repo thing like some other package managers. Also it can have your hosted page too. It can remove the pressure of having to make a platform as you stated and eases the work of package maintainers too. A couple of terminal lines and you are there.
Unfortunately trunk/master versions may contain bugs and the bug tracker will be flooded with issues about third party packages. Actually this already happened in the past, so it was decided(not by me), that OPM should only target stable version of a particular package. With that said, I'm not against it, but we must discuss it in the mailing list first. 
Title: Re: Online Package Manager
Post by: marsupilami79 on July 11, 2021, 07:36:25 pm
Hello GetMem,

there is a new version of Zeos 7.2 available. It mainly adds compatibility for MariaDB Connector/C 3.2.

Best regards,

Jan
Title: Re: Online Package Manager
Post by: balazsszekely on July 12, 2021, 04:45:14 pm
Hi Jan,

I updated Zeos. Thanks for the new version.
Title: Re: Online Package Manager
Post by: marsupilami79 on July 14, 2021, 11:01:37 pm
Hello GetMem,

I had to do another release because Zoes 7.2.12 didn't cpompile with FPC 3.2.2 for Windows 64 Bits. Could you please update OPM again?

Best regards and thank you,

Jan
Title: Re: Online Package Manager
Post by: balazsszekely on July 18, 2021, 06:54:59 pm
Hello GetMem,

I had to do another release because Zoes 7.2.12 didn't cpompile with FPC 3.2.2 for Windows 64 Bits. Could you please update OPM again?

Best regards and thank you,

Jan
Sorry for the late response, I updated Zeos. Thank you!
Title: Re: Online Package Manager
Post by: kito on July 18, 2021, 09:53:41 pm
Quote from: GetMem link=topic=34297.msg412418#msg412418
Sorry for the late response, I updated Zeos. Thank you!
Can you update ibx too?   :)  because it doesn't compile with neither FPC 3.2. * nor  FPC 3.3.*,  or I'll be grateful if you  tell me where I should report this issue. Thanks
Title: Re: Online Package Manager
Post by: balazsszekely on July 18, 2021, 10:12:00 pm
Quote from: GetMem link=topic=34297.msg412418#msg412418
Sorry for the late response, I updated Zeos. Thank you!
Can you update ibx too?   :)  because it doesn't compile with neither FPC 3.2. * nor  FPC 3.3.*,  or I'll be grateful if you  tell me where I should report this issue. Thanks
Please try here: https://www.mwasoftware.co.uk/contact-us .
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on July 28, 2021, 06:08:12 pm
Hey GetMem,

Sorry if this is the wrong place to ask, but could you provide me with a link to instructions on how to set up a GitHub repository so you can then accept a package?

I'm trying to convince Terry Lao (https://github.com/terrylao) to put his PascalContainer (https://github.com/terrylao/PascalContainer) up on OPM, but I've never suggested an entry and I don't know the initial procedure.

Many thanks in advance!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: balazsszekely on July 28, 2021, 06:47:11 pm
Hi Gus,

Quote
Sorry if this is the wrong place to ask.
This is the right place. :)

Quote
Could you provide me with a link to instructions on how to set up a GitHub repository so you can then accept a package?
Unfortunately trunk/main versions may contain bugs and the bug tracker will be flooded with issues about third party packages. Actually this already happened in the past, so it was decided(not by me), that OPM should only target stable version of a particular package. There are a few exception though, like Indy, where the release cycle is slow. With that said, if you or the author of PascalContainer consider that the package is stable, I can add it to OPM. The process is really simple, just let me know in this thread, I will do the rest.   

Quote
Many thanks in advance!!
You're welcome!
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 28, 2021, 06:57:59 pm
it was decided(not by me), that OPM should only target stable version of a particular package. There are a few exception though, like Indy, where the release cycle is slow.

FWIW, I have been considering for awhile to update Indy to use GitHub Releases for more stable packages/versioning.  I just haven't gotten around to setting it up yet.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on July 28, 2021, 07:52:39 pm
Hey GetMem,

This is the right place. :)

Ufff, that's a relief ;) !!

Unfortunately trunk/main versions may contain bugs and the bug tracker will be flooded with issues about third party packages. Actually this already happened in the past, so it was decided(not by me), that OPM should only target stable version of a particular package. There are a few exception though, like Indy, where the release cycle is slow. With that said, if you or the author of PascalContainer consider that the package is stable, I can add it to OPM. The process is really simple, just let me know in this thread, I will do the rest.   

That makes absolute sense. Having a stable release to base it on makes sense.
I think the main issue is with the fact that not every one uses master/main as the repository's stable branch :(
We need to make people use the Release tools more often. On GitHub they are rather amazing. And maybe I'm biased since I only use GitHub and not GitLab ;)

According to the answer to this issue (https://github.com/terrylao/PascalContainer/issues/11), Terry isn't ready yet to get it on OPM. He needs to sort out Iterator for his generics implementation, so I guess I'll bug you here when that happens.

I'll try and make sure that he creates a tag and a release on GitHub. That would be preferable than just a commit hash, right?

As usual, it's always a pleasure to interact with you, many thanks for that!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on July 28, 2021, 07:56:12 pm
Hey Remy,

FWIW, I have been considering for awhile to update Indy to use GitHub Releases for more stable packages/versioning.  I just haven't gotten around to setting it up yet.

When you say set it up, apart from:
Code: Bash  [Select][+][-]
  1. $ git tag -a v1.0 -m "Indy10 v1.0"
  2. $ git push --tags

And then going to GitHub to edit the new release, what do you mean?

Do you mean to automate it via the GitHub actions?

Cheers,
Gus
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 28, 2021, 09:34:13 pm
When you say set it up, apart from:
Code: Bash  [Select][+][-]
  1. $ git tag -a v1.0 -m "Indy10 v1.0"
  2. $ git push --tags

And then going to GitHub to edit the new release, what do you mean?

Do you mean to automate it via the GitHub actions?

It is not just about tagging the code.  Ever since Indy moved to GitHub, its version numbering has been broken (https://github.com/IndySockets/Indy/issues/292). OPM is currently using its own version number to compensate for that.  So Indy needs to get back to a stable versioning scheme across OPM, GitHub, Delphi IDE releases, etc so everyone is on the same page again.

And then it is also a matter of applying that versioning scheme to Indy's IdVers.inc source file, and all of its .rc/.res resource files.

Going forward in the future, once a new versioning scheme is settled on, I can obviously make sure the source files have the latest version number when checked in to main/trunk, and then tag and release using a corresponding version number.

I already have an open ticket (https://github.com/IndySockets/Indy/issues/328) for this task, I just haven't gotten around to implementing it yet.
Title: Re: Online Package Manager
Post by: balazsszekely on July 28, 2021, 09:46:49 pm
@Remy Lebeau
Quote
OPM is currently using its own version number to compensate for that.
I'm using the git-svn feature of github to get a version number. I don't know though how useful is for users. The current version is 4056.
Title: Re: Online Package Manager
Post by: Remy Lebeau on July 29, 2021, 07:22:50 pm
I'm using the git-svn feature of github to get a version number. I don't know though how useful is for users. The current version is 4056.

Better than nothing!
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on July 31, 2021, 10:56:28 am
Hi there,

With the transition of Lazarus and FPC to GIT in conjunction with Don Alfredo's release of fpcupdeluxe 2.0.0a I've been trying to get a folder that I can use in the future with trunk.
Quote
Side note: I guess we can't keep calling it trunk any more. Should we start calling it HEAD instead?
I thought I would copy my old config_lazarus into the new folder and that would make all the hassle of re-installing everything from scratch go away. For some reason, the make script has an issue with something inside that, very old, folder and does want to compile Lazarus.

So I had to start from scratch and with that came the realization that ZEOSLib still has the issue with the missing 6 Enuns for field types.
I've sorted this out in the past, and I now forget how, but I was under the impression that due to the issue being so old, I guess it was months ago, it would already be solved.

On the realization that it's not, I come to this thread to appeal to both GetMem and the maintainer of ZEOSLIb(GitHub says it's marsupilamy97) to please strike an agreement on which version is good enough to be served on OPM that, AT LEAST, resolves the issue of the 6 missing Enuns.

Many thanks in advance to both!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: balazsszekely on July 31, 2021, 04:04:19 pm
Hi Gus,

ZEOSLib is an actively maintained package, so I'm not the one who decides which version goes into OPM. IIRC ZEOS has a dedicated forum, perhaps you can ask for a bugfix there. I will gladly update the package once a new version is released.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on July 31, 2021, 04:57:34 pm
Hey GetMem,

ZEOSLib is an actively maintained package, so I'm not the one who decides which version goes into OPM. IIRC ZEOS has a dedicated forum, perhaps you can ask for a bugfix there. I will gladly update the package once a new version is released.


Hope that makes more sense and for any misunderstanding, again, please accept my apologies!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: balazsszekely on July 31, 2021, 06:19:26 pm
@Gus

No need to apologies, you didn't sound bossy at all.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on July 31, 2021, 07:05:09 pm
Hey GetMem,

No need to apologies, you didn't sound bossy at all.

Ufff, thanks for that :)

Cheers,
Gus
Title: Re: Online Package Manager
Post by: wp on August 18, 2021, 11:46:51 pm
GetMem, could you please update the extrasyn package? The new v1.0.2 contains three new highlighters for JSON, Verilog and VRML kindly provided by MRisco.

URL of the zipped package: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/extrasyn-v1.0.2.zip/download
Link of the update json: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/OPM/update_extrasyn.json/download

Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on August 19, 2021, 07:08:45 am
Thanks @wp! I updated the package.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on August 19, 2021, 02:02:51 pm
Hey WP,

Link of the update json: https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/OPM/update_extrasyn.json/download

There's an error on your JSON file. You need to separate the Array elements with a comma and there's one missing in your file.

Details on the image attached.

Cheers,
Gus
Title: Re: Online Package Manager
Post by: wp on August 19, 2021, 03:37:12 pm
Thanks. Fixed it.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on August 19, 2021, 04:17:53 pm
Hey WP,

Thanks. Fixed it.

That's awesome and you're more than welcome !!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: armandoboza on August 24, 2021, 03:38:32 pm
hello GetMem, could you update IBX with the new version 2.4.2 ?
Code: Pascal  [Select][+][-]
  1. https://forum.lazarus.freepascal.org/index.php/topic,55968.0.html

thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on August 24, 2021, 04:07:57 pm
hello GetMem, could you update IBX with the new version 2.4.2 ?
Code: Pascal  [Select][+][-]
  1. https://forum.lazarus.freepascal.org/index.php/topic,55968.0.html

thanks.
Done. Thank you!
Title: Re: Online Package Manager
Post by: armandoboza on August 24, 2021, 04:26:16 pm
Done. Thank you!

At the speed of light, thank you very much.
Title: Re: Online Package Manager -> Python4Lazarus
Post by: Jurassic Pork on September 06, 2021, 03:04:21 pm
hello Getmem,
it seems that the version of Python4Lazarus in online package manager , isn't the last version (https://github.com/Alexey-T/Python-for-Lazarus/releases/tag/2021.07.27)
Friendly, J.P
Title: Re: Online Package Manager
Post by: balazsszekely on September 06, 2021, 05:04:03 pm
Hi Jurassic Pork,

Quote
it seems that the version of Python4Lazarus in online package manager , isn't the last version
I updated Python4Lazarus. Thank you!
Title: Re: Online Package Manager
Post by: Jurassic Pork on September 06, 2021, 05:53:32 pm
Hi Jurassic Pork,
Quote
it seems that the version of Python4Lazarus in online package manager , isn't the last version
I updated Python4Lazarus. Thank you!

OK Thanks GetMem  :D
Title: Re: Online Package Manager
Post by: lainz on September 10, 2021, 05:33:15 pm
Hi, I'm asking a question, if it's possible to add Rx controls newest commit r8084 since it has a fix on rxdbgrid. If not possible no problem at all. Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on September 10, 2021, 08:51:09 pm
Hi lainz and Aleksey

Quote
Hi, I'm asking a question, if it's possible to add Rx controls newest commit r8084 since it has a fix on rxdbgrid. If not possible no problem at all. Thanks.
I updated Rx, unfortunately I get an error both with Lazarus 2.0.12/Trunk. Please see attached image for more details. Once the error is fixed I will update the package again as soon as possible. Thank you!
Title: Re: Online Package Manager
Post by: lainz on September 10, 2021, 11:13:33 pm
Yes I had the same problem, just deleting the ifdef lines works, but is not the real solution.
Title: Re: Online Package Manager
Post by: wadman on September 14, 2021, 02:26:51 pm
Hi, GetMem!  :)


Please, update https://github.com/wadman/wthread (https://github.com/wadman/wthread)
Title: Re: Online Package Manager
Post by: wp on September 14, 2021, 04:36:25 pm
GetMem, could you please update the following packages in OPM
Title: Re: Online Package Manager
Post by: balazsszekely on September 14, 2021, 07:31:04 pm
@wadman, @wp

Thanks! I updated the packages.
Title: Re: Online Package Manager
Post by: wp on September 16, 2021, 11:20:32 am
GetMem, sorry - the recently updated version of CalLite still contains a compilation issue with ancient Lazarus/fpc versions: please update OPM to v0.3.9 (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.9.zip/download)
Title: Re: Online Package Manager
Post by: balazsszekely on September 16, 2021, 11:39:15 am
GetMem, sorry - the recently updated version of CalLite still contains a compilation issue with ancient Lazarus/fpc versions: please update OPM to v0.3.9 (https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.9.zip/download)
Done. Thank you!
Title: Re: Online Package Manager
Post by: wp on September 27, 2021, 11:53:25 pm
Motivated by https://forum.lazarus.freepascal.org/index.php/topic,56504.msg419757.html#msg419757, I installed the EyeCandyControls today. At first it worked correctly, but later I tried it again and installed the package over the already existing one. Now the installation failed with the message
Quote
  Cannot extract package: "EyeCandyControls.zip".
  Error message:"Unable to create file "D:\Prog_Lazarus\packages\EC_Controls\ECLW\mf570-io.jpeg"

I repeated the installation of the package manually, and then I was prompted that this jpeg file already exists and must be overwritten.

The problem was that the file is write-protected. Therefore I must confirm to overwrite it in manual installation. In automatic installation by OPM, however, this is not possible and installation aborts.

I don't know whether this file really must be write-protected. But if this is needed we have an issue with OPM which cannot proceed in such a case.

GetMem, is it possible to modify the unzip routines of OPM such that the user can tell how to continue? Or alternatively, maybe OPM should erase all files in the destination installation directory before installation begins?
Title: Re: Online Package Manager
Post by: balazsszekely on September 28, 2021, 10:12:27 am
Hi wp,

I went with the second option(delete the destination directory before install) which is a good idea since the directory structure of a package can change in time, so a cleanup before installation should be always performed. Unfortunately DeleteDirectory(FileUtils) fails if a file is write-protected, so I wrote my own routine to delete the folder.  Now I can install EyeCandyControls several times without any issues. Can you please test with Lazarus trunk?


Title: Re: Online Package Manager
Post by: wp on September 28, 2021, 12:35:34 pm
Thank you, perfect.

I am almost sure that the following case does not apply, but just to make sure: Will the installation always go into a separate directory in the local repository for the package? Otherwise, erasing the destination directory would erase the local repository (and if that were c:\ it would erase c:\ ...).
Title: Re: Online Package Manager
Post by: balazsszekely on September 28, 2021, 01:12:40 pm
@wp

Quote
Will the installation always go into a separate directory in the local repository for the package?
Yes. Let's say you wish to install callite and you change the local repository to c:\, OPM will download the zipfile to c:\callite.zip, then extract it to c:\callite folder. Next time, before install, OPM will try to delete the c:\callite folder. Actually I tested this a few minutes ago and works as expected.

PS: Installing packages to c:\ is a very bad idea though, hopefully no one attempts the maneuver. :D Other then permission issues, the c drive will be full with random directories and zip files.
Title: Re: Online Package Manager
Post by: wp on September 28, 2021, 02:56:22 pm
Quote
Will the installation always go into a separate directory in the local repository for the package?
Yes. Let's say you wish to install callite and you change the local repository to c:\, OPM will download the zipfile to c:\callite.zip, then extract it to c:\callite folder. Next time, before install, OPM will try to delete the c:\callite folder. Actually I tested this a few minutes ago and works as expected.
I understand. There is one thing which still confuses me. When I install callite inte my local repo the file structure is
Code: [Select]
(local repository)
  |- callite
     |- callight_pkg.lpk
     |- README.txt
     |- source
        |- calendarlite.pas
  etc.
Now the package-zip itself has all folders in a callite folder, i.e. the file structure in the zip is
Code: [Select]
  callite
  |-  callight_pkg.lpk
  |-  README.txt
  |- source
      |- calendarlite.pas
etc.
So I could say that the file structure is directly transferred from the zip to the local repo.

What if had created the zip without the callite subfolder? i.e. with a directory structure like this
Code: [Select]
  callight_pkg.lpk
  README.txt
  |- source
     |- calendarlite.pas
etc.
Wouldn't the file then go directly into the local repo folder? Now a delete of the installation folder would erase the local repo.

Or is it such that an installation always goes into its own subfolder named after the OPM name, regardless of whether the zip files are in an equally named folder already?

Title: Re: Online Package Manager
Post by: balazsszekely on September 28, 2021, 04:39:50 pm
@wp

Quote
I understand. There is one thing which still confuses me. When I install callite inte my local repo the file structure is
Code: [Select]

(local repository)
  |- callite
     |- callight_pkg.lpk
     |- README.txt
     |- source
        |- calendarlite.pas
  etc.

Now the package-zip itself has all folders in a callite folder, i.e. the file structure in the zip is
Code: [Select]

  callite
  |-  callight_pkg.lpk
  |-  README.txt
  |- source
      |- calendarlite.pas
etc.

So I could say that the file structure is directly transferred from the zip to the local repo.
Yes, this is correct.

Quote
What if had created the zip without the callite subfolder? i.e. with a directory structure like this
Code: [Select]

  callight_pkg.lpk
  README.txt
  |- source
     |- calendarlite.pas
etc.
You can't, if you go to OPM->Create->Create repository package, the first thing you do is select a base directory. OPM will search for *.lpk files in that folder. When the zip file is create the base folder is always included. You can test this by right clicking the package tree, then click "Show Json", each package has a non-empty "PackageBaseDir" entry(please see attached screenshot).

Let's assume a package maintainer removes the base directory from the zip and creates the structure you mentioned above(no base folder) and the package is installed via the "Install->External repostory" feature.  Even this scenario is covered in opkman_zipper unit:
Code: Pascal  [Select][+][-]
  1.   if MPkg.IsDirZipped then //has base directory
  2.       FUnZipper.OutputPath := FDstDir //proceed as normal
  3.   else
  4.      FUnZipper.OutputPath := FDstDir + MPkg.PackageBaseDir; //add base directory, which is taken from the central repository's main json(always a non-empty string).
  5.  

So I would say is not possible to purge the c:\ or d:\ drive. One extra fail safe I could add to my newly created CleanDirectory function is to check if the path is not a drive. This would be a windows only check of course. What do you think?

Title: Re: Online Package Manager
Post by: wp on September 28, 2021, 04:56:56 pm
No I think that's fine this way.
Title: Re: Online Package Manager
Post by: wp on October 01, 2021, 11:44:51 pm
As discussed in the thread https://forum.lazarus.freepascal.org/index.php/topic,56335.msg418778.html#msg418778, I am submitting my CAPTCHA component for inclusion in the online package manager.

The released package, v.0.1.0, can be found at https://sourceforge.net/projects/lazarus-ccr/files/Captcha/captcha-v0.1.0.zip/download (the trunk version is at https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/captcha/).

The update json is at https://sourceforge.net/projects/lazarus-ccr/files/Captcha/OPM/update_captcha.json/download

The package json is in the attachment (zipped because of forum file type limitations).
Title: Re: Online Package Manager
Post by: balazsszekely on October 02, 2021, 08:35:27 am
@wp
I will add the package but only Monday. I' m out in the weekend.

Update:
Done. Thanks for the package!
Title: Re: Online Package Manager
Post by: lainz on October 29, 2021, 02:45:04 pm
Hi, seems that a package is missing CryptoLib, the other two HashLib and SimpleBaseLib are available.
Title: Re: Online Package Manager
Post by: balazsszekely on October 30, 2021, 07:47:54 am
Hi lainz,

Quote
 
Hi, seems that a package is missing CryptoLib, the other two HashLib and SimpleBaseLib are available.
I' m not sure which package should I update. Can you please be more specific.
Title: Re: Online Package Manager
Post by: jujibo on October 30, 2021, 11:02:56 am
[Edited] Forget it. I see you have updated the package... you are quick  :D

@GetMem

There is a new version of IBX4Lazarus. It fixes a problem with latest FPC fixes3_2 changes.

https://forum.lazarus.freepascal.org/index.php/topic,56926.0.html

Title: Re: Online Package Manager
Post by: lainz on October 30, 2021, 11:59:21 am
Hi lainz,

Quote
 
Hi, seems that a package is missing CryptoLib, the other two HashLib and SimpleBaseLib are available.
I' m not sure which package should I update. Can you please be more specific.

CryptoLib is missing in the OPM. Please add it.
Title: Re: Online Package Manager
Post by: wp on October 30, 2021, 12:17:44 pm
Maybe I am stupid, but what is CryptoLib?

- This one  (https://github.com/cryptomator/cryptolib)is java
- This one (https://github.com/IcyApril/CryptoLib) is php.
- This one (https://cryptlib.com/security-software) is commercial.
- This one (http://cryptlib.sogot.de/delphi.html) is Delphi. But does it work with FPC/Lazarus?
Title: Re: Online Package Manager
Post by: lainz on October 30, 2021, 12:22:33 pm
Maybe I am stupid, but what is CryptoLib?

- This one  (https://github.com/cryptomator/cryptolib)is java
- This one (https://github.com/IcyApril/CryptoLib) is php.
- This one (https://cryptlib.com/security-software) is commercial.
- This one (http://cryptlib.sogot.de/delphi.html) is Delphi. But does it work with FPC/Lazarus?
https://github.com/Xor-el/CryptoLib4Pascal#compile-time-dependencies
Title: Re: Online Package Manager
Post by: wp on October 30, 2021, 12:37:21 pm
Are you sure that Xor-el wants to have its package in OPM?
Title: Re: Online Package Manager
Post by: lainz on October 31, 2021, 02:04:23 am
Are you sure that Xor-el wants to have its package in OPM?

I'm sure of one thing, two of his 3 packages are in OPM, and I need the 3.
Title: Re: Online Package Manager
Post by: balazsszekely on October 31, 2021, 07:42:34 am
Ok. I will add/update the packages soon.
Title: Re: Online Package Manager
Post by: powerpcer on November 01, 2021, 04:17:48 am
Hey GetMem,

This is the right place. :)

Ufff, that's a relief ;) !!

Unfortunately trunk/main versions may contain bugs and the bug tracker will be flooded with issues about third party packages. Actually this already happened in the past, so it was decided(not by me), that OPM should only target stable version of a particular package. There are a few exception though, like Indy, where the release cycle is slow. With that said, if you or the author of PascalContainer consider that the package is stable, I can add it to OPM. The process is really simple, just let me know in this thread, I will do the rest.   

That makes absolute sense. Having a stable release to base it on makes sense.
I think the main issue is with the fact that not every one uses master/main as the repository's stable branch :(
We need to make people use the Release tools more often. On GitHub they are rather amazing. And maybe I'm biased since I only use GitHub and not GitLab ;)

According to the answer to this issue (https://github.com/terrylao/PascalContainer/issues/11), Terry isn't ready yet to get it on OPM. He needs to sort out Iterator for his generics implementation, so I guess I'll bug you here when that happens.

I'll try and make sure that he creates a tag and a release on GitHub. That would be preferable than just a commit hash, right?

As usual, it's always a pleasure to interact with you, many thanks for that!!

Cheers,
Gus
i had enhanced my package, what should i do to put it in OPM?
Title: Re: Online Package Manager
Post by: balazsszekely on November 01, 2021, 07:08:15 am
@lainz
  -updated BGRABitmap, BGRAControls
  -added CryptoLib4Pascal

@jujibo
  -updated IBX

@powerpcer
  -added PascalContainer

Thanks everyone for your contributions/suggestions.



Title: Re: Online Package Manager
Post by: Guva on November 05, 2021, 03:44:32 pm
Hello GetMem !!! update please Ray4Laz (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.0.zip)

https://github.com/GuvaCode/Ray4Laz (https://github.com/GuvaCode/Ray4Laz)
Title: Re: Online Package Manager
Post by: funlw65 on November 06, 2021, 04:34:13 am
Hello GetMem !!! update please Ray4Laz (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.0.zip)

https://github.com/GuvaCode/Ray4Laz (https://github.com/GuvaCode/Ray4Laz)

As I understand, for the moment there are problems with the glfw library... raylib devs are expecting a released glfw lib before making any raylib modifications...

I guess it won't take long...
Title: Re: Online Package Manager
Post by: Guva on November 06, 2021, 06:00:19 am
Hello GetMem !!! update please Ray4Laz (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.0.zip)

https://github.com/GuvaCode/Ray4Laz (https://github.com/GuvaCode/Ray4Laz)


As I understand, for the moment there are problems with the glfw library... raylib devs are expecting a released glfw lib before making any raylib modifications...

I guess it won't take long...


Yes there are problems. But this is if you specify to use the latest version of glfw separately when compiling.
Title: Re: Online Package Manager
Post by: wp on November 06, 2021, 11:59:04 am
After installing the Laz v2.2RC2 and adjusting my usual settings, I noticed that CSVDocument is included in OPM now - maybe it has been there for a long time, I did not notice.

CSVDocument, however, is already included in the standard FPC installations (folder packages/fcl-base) where it is maintained (last bug fix 2 years ago) while the CCR version from which the OPM version originates has seen its last change in 2014.

To avoid confusion I'd strongly vote for removing CSVDocument from OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on November 07, 2021, 08:02:11 am
Hello GetMem !!! update please Ray4Laz (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.0.zip)

https://github.com/GuvaCode/Ray4Laz (https://github.com/GuvaCode/Ray4Laz)
Done. Thanks for the new version.


After installing the Laz v2.2RC2 and adjusting my usual settings, I noticed that CSVDocument is included in OPM now - maybe it has been there for a long time, I did not notice.

CSVDocument, however, is already included in the standard FPC installations (folder packages/fcl-base) where it is maintained (last bug fix 2 years ago) while the CCR version from which the OPM version originates has seen its last change in 2014.

To avoid confusion I'd strongly vote for removing CSVDocument from OPM.
I received CSVDocument via the Submit button(OPM->Options->Create Repository Package->Submit). I have no idea who sent it. I removed now to avoid confusion. Thanks!
Title: I need GetMem to clarify this one...
Post by: Gustavo 'Gus' Carreno on November 09, 2021, 11:54:54 pm
Hey GetMem,

I was having a discussion about building a CLI version of a package manager on a Discord server and, obviously, the question arose: You can use the OPM JSON data to base that CLI on.

So, please could you share what were you smoking when you decided to implement this:
Code: Javascript  [Select][+][-]
  1. {
  2.   "PackageData0" : {
  3.     "Name" : "Abbrevia",
  4.     "DisplayName" : "Abbrevia",
  5.     "Category" : "Other",
  6.     "CommunityDescription" : "Compression toolkit. Supports PKZip, CAB, tar, gzip, bzip2, zlib formats, and the creation of self-extracting executables.",
  7.     "ExternalDependecies" : "",
  8.     "OrphanedPackage" : 0,
  9.     "RepositoryFileName" : "Abbrevia.zip",
  10.     "RepositoryFileSize" : 1746862,
  11.     "RepositoryFileHash" : "00cce6329d1f283b8f8b0884d87334d5",
  12.     "RepositoryDate" : 4.3096719915462963E+004,
  13.     "PackageBaseDir" : "Abbrevia\\/",
  14.     "HomePageURL" : "http://tpabbrevia.sourceforge.net/",
  15.     "DownloadURL" : "",
  16.     "SVNURL" : ""
  17.   },
  18.   "PackageFiles0" : [
  19.     {
  20.       "Name" : "abbrevia.lpk",
  21.       "Description" : "Abbrevia: Advanced data compression toolkit\r\n  http://tpabbrevia.sourceforge.net",
  22.       "Author" : "Abbrevia Group",
  23.       "License" : "Mozilla Public License (MPL) 1.1",
  24.       "RelativeFilePath" : "packages\\/Lazarus\\/",
  25.       "VersionAsString" : "5.0.0.0",
  26.       "LazCompatibility" : "1.8.0, 1.8.2, 1.8.4, 1.8.5, 2.0.0, 2.0.2, 2.0.4, 2.0.6, Trunk",
  27.       "FPCCompatibility" : "3.0.0, 3.0.2, 3.0.4",
  28.       "SupportedWidgetSet" : "win32/win64, gtk2, carbon",
  29.       "PackageType" : 0,
  30.       "DependenciesAsString" : "LCL, FCL(1.0)"
  31.     }],
  32. /* etc, etc */
  33. }

Instead of something more like this:
Code: Javascript  [Select][+][-]
  1. [
  2.   {
  3.     "Name" : "Abbrevia",
  4.     "DisplayName" : "Abbrevia",
  5.     "Category" : "Other",
  6.     "CommunityDescription" : "Compression toolkit. Supports PKZip, CAB, tar, gzip, bzip2, zlib formats, and the creation of self-extracting executables.",
  7.     "ExternalDependecies" : "",
  8.     "OrphanedPackage" : 0,
  9.     "RepositoryFileName" : "Abbrevia.zip",
  10.     "RepositoryFileSize" : 1746862,
  11.     "RepositoryFileHash" : "00cce6329d1f283b8f8b0884d87334d5",
  12.     "RepositoryDate" : 4.3096719915462963E+004,
  13.     "PackageBaseDir" : "Abbrevia\\/",
  14.     "HomePageURL" : "http://tpabbrevia.sourceforge.net/",
  15.     "DownloadURL" : "",
  16.     "SVNURL" : ""
  17.     "Files": [
  18.       {
  19.         "Name" : "abbrevia.lpk",
  20.         "Description" : "Abbrevia: Advanced data compression toolkit\r\n  http://tpabbrevia.sourceforge.net",
  21.         "Author" : "Abbrevia Group",
  22.         "License" : "Mozilla Public License (MPL) 1.1",
  23.         "RelativeFilePath" : "packages\\/Lazarus\\/",
  24.         "VersionAsString" : "5.0.0.0",
  25.         "LazCompatibility" : "1.8.0, 1.8.2, 1.8.4, 1.8.5, 2.0.0, 2.0.2, 2.0.4, 2.0.6, Trunk",
  26.         "FPCCompatibility" : "3.0.0, 3.0.2, 3.0.4",
  27.         "SupportedWidgetSet" : "win32/win64, gtk2, carbon",
  28.         "PackageType" : 0,
  29.         "DependenciesAsString" : "LCL, FCL(1.0)"
  30.       }
  31.     ]
  32.   },
  33. /* etc etc */
  34. ]

Or something that made a bit more sense with an array of choices and not an object with infinite members that have a number at the end to signify index?

Just wanted to ask this because we all thought the JSON was rather strangely conceived :)

Cheers,
Gus

PS: Please don't take this the wrong way!!
I respect your work and I publicise it as often as I can cuz what you do for free is rather invaluable!!!
Take this with a pinch of salt and in a banter kind of context :)
Title: Re: Online Package Manager
Post by: balazsszekely on November 10, 2021, 07:00:22 am
@Gustavo 'Gus' Carreno

Quote
So, please could you share what were you smoking when you decided to implement this
I don't smoke, but maybe I was drunk.  :D

Quote
Or something that made a bit more sense with an array of choices and not an object with infinite members that have a number at the end to signify index?
It makes sense to me, the JSON is directly parsed into an object, instance of a class to be more precise. Please take a look at opkman_serializablepackages.pas for more details. The number in the end makes the JSON validators happy, like this one: https://jsonlint.com/.

Quote
Just wanted to ask this because we all thought the JSON was rather strangely conceived
I can't argue with that. It's a valid JSON and is fast enough for OPM.

Quote
PS: Please don't take this the wrong way!!
I respect your work and I publicise it as often as I can cuz what you do for free is rather invaluable!!!
Take this with a pinch of salt and in a banter kind of context :)
No problem. Constructive criticism is always good.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on November 11, 2021, 02:34:39 am
Hey GetMem,

I don't smoke, but maybe I was drunk.  :D

LOL :D Touché :D

It makes sense to me, the JSON is directly parsed into an object, instance of a class to be more precise. Please take a look at opkman_serializablepackages.pas for more details. The number in the end makes the JSON validators happy, like this one: https://jsonlint.com/.

Of course it makes sense to you, LOL, you were the one that came up with it, eheheh!!!

Nonetheless, making an object with infinite members is just odd when you could just have an array of objects.
This array of objects could then be nicely un-marshaled into a TObjectList, or a TFPObjectList or even using generics a TFPGObjectList.
It then can be tracked so much easily with an index on the Items default property. It even marries well with the ItemIndex of a TListBox or any other component that will have a corresponding thing.
I've been doing a ton of marshaling and un-marshaling of JSON and I welcome the nicety of an array of objects getting translated to a collection of Objects in Pascal.
Your solution works, obviously, but I'm guessing that you never considered that your JSON would be used by anyone but yourself, which, again, is rather understandable :)

I will, eventually, have a look at opkman_serializablepackages.pas, cuz I need to finish my setup-lazarus GitHub action to implement dependencies and multi-packages. ATM its failing rather embarrassingly on that aspect.
Maybe before I complete the setup-lazarus GH Action, I'll probably write a bit of code that will translate your massive Father Object into a TFPObjectList of custom made Object Pascal classes that will support your JSON data in a manner that is more bag of objects, than object of objects, if that makes sense :)

And this translation work could be the beginning of a command line package manager. Maybe opm-cli or something of the sorts :)

There's a person on the Discord server that really doesn't like Lazarus. He prefers VS Code/Vim cuz for his needs the GUI is un-welcomed. He proclaims to be a CLI man only :)
There is already a Python command only package manager, called LPM(Lazarus Package Manager (https://github.com/Warfley/LazarusPackageManager)), made by Warfley, that has the option to use your JSON data and can also get stuff from GitHub, but a native Object Pascal solution wouldn't be a bad thing, right?

No problem. Constructive criticism is always good.

I'm so glad you took it that way, cuz it is what I intended ;)

Cheers,
Gus
Title: Re: Online Package Manager
Post by: wp on December 02, 2021, 06:21:16 pm
GetMem, could you please update the JVCLLaz packages in OPM. The new version, 1.0.7, is a bug fix because there was a compilation issue with Laz 2.0.x (https://sourceforge.net/p/lazarus-ccr/bugs/49/).

zip file: https://sourceforge.net/projects/lazarus-ccr/files/jvcllaz/jvcllaz-1.0.7.zip/download
update json: https://sourceforge.net/projects/lazarus-ccr/files/jvcllaz/OPM/update_jvcllaz.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on December 02, 2021, 06:41:20 pm
@wp

Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: jmpessoa on December 04, 2021, 09:46:02 pm
Hi, GetMan!

Please, can "OPM" get LAMW packages  directly from this link: 

https://github.com/jmpessoa/lazandroidmodulewizard/archive/master.zip

So we could avoid some noise.... [keeping it synchronized]


Thank you!
Title: Re: Online Package Manager
Post by: dsiders on December 05, 2021, 12:28:24 am
Hi, GetMan!

Please, can "OPM" get LAMW packages  directly from this link: 
https://github.com/jmpessoa/lazandroidmodulewizard/archive/refs/heads/master.zip
So we could avoid some noise....
Thank you!

A couple of suggestions:

Create a tagged release. This will give him a specific target to pull, and not just the head of your repository. https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases

Create an update_lamw.json file that OPM can publish for you.

Reduce the noise for GetMem too.

 
Title: Re: Online Package Manager
Post by: jmpessoa on December 05, 2021, 01:45:18 am
Hi, dsiders!

Yes,  if need by OPM I can "create a targed release"
(although at the current stage of development LAMW only exists while "master")

My doubt is how difficult [and costly] to GetMan handle  frequent update requests

for  the file  "update_lamw.json"


Can you explain to me how this process works?
Title: Re: Online Package Manager
Post by: dsiders on December 05, 2021, 03:26:06 am
Hi, dsiders!

Yes,  if need by OPM I can "create a targed release"
(although at the current stage of development LAMW only exists while "master")

My doubt is how difficult [and costly] to GetMan handle  frequent update requests

for  the file  "update_lamw.json"


Can you explain to me how this process works?

Not really. I would defer to GetMem for that. But I can in the .json files that it identifies the packages affectedm theior version number, and the url where the "release" can be downloaded. That has to make it easier than it would be without it.
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2021, 06:04:44 pm
Hi jmpessoa,

Unfortunately trunk/main versions may contain bugs and the bug tracker will be flooded with issues about third party packages. Actually this already happened in the past, so it was decided(not by me), that OPM should only target stable version of a particular package. Package maintainers however, can push a newer version via the "external update" feature(see image1). There is a catch though, in order for the external update to work, you have to enable it from options(see image2). It's disabled by default because some users did not like the fact the OPM connects to various sites. So even if you create a target release and an update json, novice users most likely wouldn't be able to update, because they are not familiar with the procedure. The situation is far from ideal, but until a new update method is developed we have to cope with the current system.
In my opinion the best solution is(for now) to update the packages manually, it only takes about 3-5 minutes for me. All you have to do is to leave a message here and I will update the package in 24 hours, except weekends.
Title: Re: Online Package Manager
Post by: jmpessoa on December 05, 2021, 07:41:27 pm
Quote
In my opinion the best solution is(for now) to update the packages manually, it only takes about 3-5 minutes for me...

Accepted!

I will try to bother only in case of critical situations or important developments.

Thank you very much!
Title: Re: Online Package Manager
Post by: balazsszekely on December 05, 2021, 09:10:55 pm
@jmpessoa
Quote
Accepted!

I will try to bother only in case of critical situations or important developments.

Thank you very much!
You're welcome! I updated LAMW a few minutes ago. Thanks for the new version.
Title: Re: Online Package Manager
Post by: funlw65 on December 17, 2021, 04:34:36 pm
Ray4Laz 4.0 needs a (re)update as the author added support for physac.h and raygui.h, changed the name of the units to reflect the original names of the C library, modified all examples to reflect the changes and added two more examples.

So, it is still version 4.0 but this time is complete. Thank you very much!

BTW, at this version, the C library of raylib needs some attention from the user regarding configuration, to include the raygui and physac modules in the generated library...
Ray4Laz 4 assumes that the user did this already.
Title: Re: Online Package Manager
Post by: balazsszekely on December 17, 2021, 05:20:48 pm
Ray4Laz 4.0 needs a (re)update as the author added support for physac.h and raygui.h, changed the name of the units to reflect the original names of the C library, modified all examples to reflect the changes and added two more examples.

So, it is still version 4.0 but this time is complete. Thank you very much!

BTW, at this version, the C library of raylib needs some attention from the user regarding configuration, to include the raygui and physac modules in the generated library...
Ray4Laz 4 assumes that the user did this already.
I updated the package. Thanks for the new version.
Title: Re: Online Package Manager
Post by: Guva on December 20, 2021, 07:07:56 pm
Quote
I updated the package. Thanks for the new version.
What the hell? >:D  Yes I updated the library but I shouldn't have added the master branch. >:(
Now we need to create a release with compiled raylib for several platforms.

Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2021, 07:17:02 pm
Quote
What the hell? >:D  Yes I updated the library but I shouldn't have added the master branch. >:(
Now we need to create a release with compiled raylib for several platforms.
No worries, I can put back the old version. What do you prefer?

PS: Hopefully we will have a new platform soon, where each package maintainer can update their own packages. The manual package update it's getting increasingly tedious for me.
Title: Re: Online Package Manager
Post by: Guva on December 20, 2021, 07:22:08 pm
Yes it is desirable. Return the old version to OPM. It is considered stable. I am currently preparing a new version with compiled libraries to support GUI.
There are also some bugs found (and not fixed yet). Thank you.
Title: Re: Online Package Manager
Post by: Guva on December 20, 2021, 07:25:04 pm
Quote

PS: Hopefully we will have a new platform soon, where each package maintainer can update their own packages. The manual package update it's getting increasingly tedious for me.
Now that's good news!
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2021, 07:51:49 pm
@Guva
I have a backup from November 1. I'm not sure if it's the right version. Can you please give me a link, with your latest stable release? Also who is @funlw65, who suggested the package update for Ray4Laz? I taught he is also some kind of maintainer.  I fell for this one :D.
Users who are not package maintainers, please do not suggest package updates for actively maintained packages.
Title: Re: Online Package Manager
Post by: Guva on December 20, 2021, 07:59:39 pm
https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.0.zip
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2021, 08:07:10 pm
@Guva

Done. Package updated to: https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.0.zip
Title: Re: Online Package Manager
Post by: funlw65 on December 21, 2021, 12:42:25 pm
I apologize to both @Guva and @GetMem! Lesson learned!
Title: Re: Online Package Manager
Post by: Onur2x on January 01, 2022, 01:20:20 am
Getmem,
OPM turkish language file updated..Thnks
Title: Re: Online Package Manager
Post by: balazsszekely on January 01, 2022, 11:59:40 am
@Onur2x

Quote
Getmem,
OPM turkish language file updated..Thnks
Thank you, I forwarded the file to @Maxim.
Title: Re: Online Package Manager
Post by: Remy Lebeau on January 16, 2022, 03:55:56 am
@GetMem
I have just checked in a bunch of updates to Indy's GitHub repo.
Title: Re: Online Package Manager
Post by: balazsszekely on January 16, 2022, 04:56:01 pm
@GetMem
I have just checked in a bunch of updates to Indy's GitHub repo.
I updated Indy. Thanks for the new version!
Title: Re: Online Package Manager
Post by: avra on January 17, 2022, 08:59:17 am
Lazarus trunk and FPC trunk can not install PascalSCADA because of ZEOS compilation and installation failure. Although OPM states that it has 7.2.14, I have tried real 7.2.14 from https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/7.2-patches/ as explained at https://forum.lazarus.freepascal.org/index.php/topic,51162.msg429916.html#msg429916, and ZEOS finally compiles and PascalSCADA installs without problems.

It would be nice if OPM ZEOS could be updated to this version.
Title: Re: Online Package Manager
Post by: balazsszekely on January 17, 2022, 09:49:55 am
Lazarus trunk and FPC trunk can not install PascalSCADA because of ZEOS compilation and installation failure. Although OPM states that it has 7.2.14, I have tried real 7.2.14 from https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/7.2-patches/ as explained at https://forum.lazarus.freepascal.org/index.php/topic,51162.msg429916.html#msg429916, and ZEOS finally compiles and PascalSCADA installs without problems.

It would be nice if OPM ZEOS could be updated to this version.
Done. Thank you!
Title: Re: Online Package Manager
Post by: avra on January 17, 2022, 01:34:19 pm
Lazarus trunk and FPC trunk can not install PascalSCADA because of ZEOS compilation and installation failure. Although OPM states that it has 7.2.14, I have tried real 7.2.14 from https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/7.2-patches/ as explained at https://forum.lazarus.freepascal.org/index.php/topic,51162.msg429916.html#msg429916, and ZEOS finally compiles and PascalSCADA installs without problems.

It would be nice if OPM ZEOS could be updated to this version.
Done. Thank you!
Tested. It works. Thanks!
Title: Re: Online Package Manager
Post by: avra on January 18, 2022, 12:58:49 pm
Hello GetMem,

It seams that OPM is now deleting all previous pl_* components directories inside of ct4laz directory when new pl_* component is getting installed. The result is that only last pl_* component stays, which is pretty bad since it confuses IDE and pl_0_libs is always deleted. If I remember well, this problem existed long time ago but was fixed. I can download several pl_* components via OPM and install them manually without problems (if my manual installation order is correct).

Tested with a week old trunk laz and trunk fpc in 32bit laz on Win10x64.
Title: Re: Online Package Manager
Post by: balazsszekely on January 18, 2022, 01:30:35 pm
Hello GetMem,

It seams that OPM is now deleting all previous pl_* components when new pl_* component is getting installed. The result is that only last pl_* component stays, which is pretty bad since it confuses IDE and pl_0_libs is always deleted. If I remember well, this problem existed long time ago but was fixed. I can download several pl_* components via OPM and install them manually without problems (if my manual installation order is correct).

Tested with a week old trunk laz and trunk fpc in 32bit laz on Win10x64.
It was recently introduced, see more details here: https://forum.lazarus.freepascal.org/index.php/topic,34297.msg419813.html#msg419813 In general it's a good idea, however I can see why is not so good idea in case of pl_*components.  Luckily only trunk is effected, I will figure something out for pl packages.
Title: Re: Online Package Manager
Post by: avra on January 18, 2022, 02:28:32 pm
Now that OPM has VampyreImaging component, we should probably drop pl_vampyreimaging from OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on January 18, 2022, 03:19:09 pm
@avra

Quote
I will figure something out for pl packages.
Please test with the latest version(d0a2f521d428045f6c6ca1e411c654a2d99398b1).

Quote
Now that OPM has VampyreImaging component, we should probably drop pl_vampyreimaging from OPM.
Done.
Title: Re: Online Package Manager
Post by: avra on January 19, 2022, 02:36:05 am
Quote
I will figure something out for pl packages.
Please test with the latest version(d0a2f521d428045f6c6ca1e411c654a2d99398b1).
Somehow I do not see any January 18th changes at https://gitlab.com/freepascal.org/lazarus/lazarus/-/commits/main/components/onlinepackagemanager.
I have also tried to find mentioned revision at https://gitlab.com/freepascal.org/lazarus/lazarus/-/network/main?extended_sha1=d0a2f521d428045f6c6ca1e411c654a2d99398b1 but failed.
What am I missing?
Title: Re: Online Package Manager
Post by: avra on January 19, 2022, 10:00:21 am
I have provided patches to MultiLog and now package and all demos compile and run without problems on trunk fpc+laz, and on fixes fpc+laz (tested in 32bit IDE on Win10x64). Please update OPM from https://github.com/blikblum/multilog/archive/refs/heads/master.zip.
Title: Re: Online Package Manager
Post by: balazsszekely on January 19, 2022, 10:31:29 am
@avra
Quote
Somehow I do not see any January 18th changes at https://gitlab.com/freepascal.org/lazarus/lazarus/-/commits/main/components/onlinepackagemanager.
I have also tried to find mentioned revision at https://gitlab.com/freepascal.org/lazarus/lazarus/-/network/main?extended_sha1=d0a2f521d428045f6c6ca1e411c654a2d99398b1 but failed.
What am I missing?
Please try again("Skip clean directory for PL packages.").

Quote
I have provided patches to MultiLog and now package and all demos compile and run without problems on trunk fpc+laz, and on fixes fpc+laz (tested in 32bit IDE on Win10x64). Please update OPM from https://github.com/blikblum/multilog/archive/refs/heads/master.zip.
I updated the package. Thanks for the new version!
Title: Re: Online Package Manager
Post by: avra on January 19, 2022, 12:45:18 pm
Please try again("Skip clean directory for PL packages.").
Overwriting my local opkman_common.pas with latest one and recompiling Lazarus has fixed the issue. Thanks!

Quote
I have provided patches to MultiLog and now package and all demos compile and run without problems on trunk fpc+laz, and on fixes fpc+laz (tested in 32bit IDE on Win10x64). Please update OPM from https://github.com/blikblum/multilog/archive/refs/heads/master.zip.
I updated the package. Thanks for the new version!
Thank you!
Title: Re: Online Package Manager
Post by: avra on January 19, 2022, 12:58:50 pm
This is an announcement that BitHelpers package becomes deprecated since it is now part of trunk FPC RTL.

More info here: https://forum.lazarus.freepascal.org/index.php/topic,41672.msg431472.html#msg431472

BitHelpers package will probably be removed from OPM when official Lazarus starts using FPC 3.4. After that it will be available only at https://bitbucket.org/avra/bithelpers. All new development goes to FPC trunk.

If you have FPC newer then July 21st 2021, you have probably noticed that BitHelpers can no longer install. That is intentional, and if you use new FPC then you should adapt your code to use new FPC RTL instead.

Have fun!  ::)
Title: Re: Online Package Manager
Post by: balazsszekely on January 19, 2022, 02:50:54 pm
This is an announcement that BitHelpers package becomes deprecated since it is now part of trunk FPC RTL.

More info here: https://forum.lazarus.freepascal.org/index.php/topic,41672.msg431472.html#msg431472

BitHelpers package will probably be removed from OPM when official Lazarus starts using FPC 3.4. After that it will be available only at https://bitbucket.org/avra/bithelpers. All new development goes to FPC trunk.

If you have FPC newer then July 21st 2021, you have probably noticed that BitHelpers can no longer install. That is intentional, and if you use new FPC then you should adapt your code to use new FPC RTL instead.

Have fun!  ::)
Congratulations @avra! When it's time to remove BitHelpers from OPM please let me know. I suppose FPC 3.4 release, is not so far in the future.
Title: Re: Online Package Manager
Post by: avra on January 19, 2022, 03:06:49 pm
Congratulations @avra!
Thanks GetMem, I appreciate it!  ;)

When it's time to remove BitHelpers from OPM please let me know. I suppose FPC 3.4 release, is not so far in the future.
Well, I guess that good removal time would be when FPC 3.4 comes into official Lazarus release...
Title: Re: Online Package Manager
Post by: wp on January 31, 2022, 01:05:24 pm
I prepared a new release version of fpspreadsheet - I has long been overdue...

GetMem, could you please update OPM?
release-zip: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.14.zip/download
update-json: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/OPM/update_FPSpreadsheet.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on January 31, 2022, 07:05:07 pm
I prepared a new release version of fpspreadsheet - I has long been overdue...

GetMem, could you please update OPM?
release-zip: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.14.zip/download
update-json: https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/OPM/update_FPSpreadsheet.json/download
Thank you! I updated the package.
Title: Re: Online Package Manager
Post by: senglit on February 05, 2022, 07:35:06 pm
I got a problem with OPM on CentOS7 and I posted at https://forum.lazarus.freepascal.org/index.php/topic,58204.0.html (https://forum.lazarus.freepascal.org/index.php/topic,58204.0.html)
maybe I should also mention it here?
Thanks!
Title: Re: Online Package Manager
Post by: Remy Lebeau on February 07, 2022, 12:13:14 am
@GetMem
I have just checked in a bunch of updates to Indy's GitHub repo.

New update posted.
Title: Re: Online Package Manager
Post by: balazsszekely on February 07, 2022, 07:09:52 am
@GetMem
I have just checked in a bunch of updates to Indy's GitHub repo.

New update posted.
Thank you! I updated Indy.
Title: Re: Online Package Manager
Post by: AlexTP on March 01, 2022, 06:17:36 pm
For item 'KControls' I click the 'homepage' link in the OPM and get
https://bitbucket.org/tomkrysl/kcontrols/

Repository not found

The requested repository either does not exist or you do not have access. If you believe this repository exists and you have access, make sure you're authenticated.
Title: Re: Online Package Manager
Post by: balazsszekely on March 01, 2022, 06:30:12 pm
For item 'KControls' I click the 'homepage' link in the OPM and get
https://bitbucket.org/tomkrysl/kcontrols/

Repository not found

The requested repository either does not exist or you do not have access. If you believe this repository exists and you have access, make sure you're authenticated.
The author most likely deleted the page. IIRC he was busy with other things and did not have time to maintain the package.
Title: Re: Online Package Manager
Post by: dsiders on March 01, 2022, 06:33:15 pm
For item 'KControls' I click the 'homepage' link in the OPM and get
https://bitbucket.org/tomkrysl/kcontrols/

Repository not found

The requested repository either does not exist or you do not have access. If you believe this repository exists and you have access, make sure you're authenticated.
The author most likely deleted the page. IIRC he was busy with other things and did not have time to maintain the package.

Its on GitHub at: https://github.com/kryslt/KControls. The page indicates that has been its home since  Jan 2020.
Title: Re: Online Package Manager
Post by: balazsszekely on March 01, 2022, 06:41:00 pm
@dsiders

Quote
Its on GitHub at: https://github.com/kryslt/KControls. The page indicates that has been its home since  Jan 2020.
Thank you! I see that the "External JSON" also points to https://github.com/kryslt/KControls/raw/master/laz_opm_update.json
Probably we should change the "Home page" to https://github.com/kryslt/KControls/, but I'm reluctant to make modification without the author's permission.
Title: Re: Online Package Manager
Post by: avra on March 01, 2022, 07:27:16 pm
Probably we should change the "Home page" to https://github.com/kryslt/KControls/, but I'm reluctant to make modification without the author's permission.

At https://github.com/kryslt I read:
Quote
Free components for Delphi and Lazarus, this is the main repository maintained by the original author.

and at https://github.com/kryslt/KControls:
Quote
The repository was originally located at https://bitbucket.org/tomkrysl/kcontrols. Since January 2020 it is on Github, moved from Bitbucket because Atlassian discontinued Mercurial VCS in 2020. The original repository should be deleted on 1th June 2020.

It looks pretty safe to me to do the mentioned modification...
Title: Re: Online Package Manager
Post by: balazsszekely on March 02, 2022, 06:36:55 am
@avra
Quote
It looks pretty safe to me to do the mentioned modification...
OK. I changed the Home page to https://github.com/kryslt/KControls. Thank you!
Title: Re: Online Package Manager
Post by: Red_prig on March 03, 2022, 05:33:41 pm
Hello, I suggest for inclusion in the online package manager "Slim read-write lock"  :-[
Title: Re: Online Package Manager
Post by: balazsszekely on March 03, 2022, 10:17:33 pm
Hello, I suggest for inclusion in the online package manager "Slim read-write lock"  :-[
I added the package. Thank you! A demo project would be nice.
Title: Re: Online Package Manager
Post by: wp on March 03, 2022, 10:25:52 pm
And you should write a wiki article in which you explain what this package is good for and how it can be applied.
Title: Re: Online Package Manager
Post by: AlexTP on March 04, 2022, 12:35:12 pm
@GetMem
pls correct the homepage for SlimRWLock:
https://github.com/red-prig/utils_libs/
Title: Re: Online Package Manager
Post by: balazsszekely on March 04, 2022, 03:15:44 pm
@GetMem
pls correct the homepage for SlimRWLock:
https://github.com/red-prig/utils_libs/
Done. Thank you.
Title: Re: Online Package Manager
Post by: AlexTP on March 04, 2022, 06:51:04 pm
As i got from this post
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/39660#note_863389048

OPM has not the last BGRABitmap ver? I use last one from github and all is ok here.
Title: Re: Online Package Manager
Post by: balazsszekely on March 04, 2022, 10:01:37 pm
As i got from this post
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/39660#note_863389048

OPM has not the last BGRABitmap ver? I use last one from github and all is ok here.
I updated BGRABitmap in OPM.
Title: Re: Online Package Manager
Post by: dbannon on March 05, 2022, 02:23:00 am
....
I added the package. Thank you! A demo project would be nice.

> And you should write a wiki article in which you explain what this package is good for and how it can be applied.

Even a just a few lines in the OPM content would be a help.  The author only needed to copy the brief summary from the original C++ source site -

Lightweight read-write locks for thread synchronization on Windows that run on Windows XP and up.

I believe that maybe, sometimes, new entries should require that sort of information before being added.

Note "should" means unless its an exceptional case. Its not "must".

Davo
Title: Re: Online Package Manager
Post by: Red_prig on March 05, 2022, 09:39:04 am
Added to package description, added demo, plz update
Title: Re: Online Package Manager
Post by: wp on March 05, 2022, 11:55:46 am
I believe that maybe, sometimes, new entries should require that sort of information before being added.

Note "should" means unless its an exceptional case. Its not "must".
That's a good idea. But I would say it should be a "must". I'd strongly vote for a new strategy in OPM to accept new packages only if they contain a demo application and at least a minimum amount of documentation, say: a readme file or the link to a wiki article.
Title: Re: Online Package Manager
Post by: balazsszekely on March 06, 2022, 04:06:14 pm
@Red_prig
Quote
Added to package description, added demo, plz update
I updated the package. Thank you!

@dbannon, @wp
Quote
I believe that maybe, sometimes, new entries should require that sort of information before being added.
Note "should" means unless its an exceptional case. Its not "must".
Quote
That's a good idea. But I would say it should be a "must". I'd strongly vote for a new strategy in OPM to accept new packages only if they contain a demo application and at least a minimum amount of documentation, say: a readme file or the link to a wiki article.

I would say the following entries should be mandatory:
1. lpk file
   - Short description
   - Author
   - License
2. Demo example
3. At least a minimum amount of documentation
Anyways very few packages are added lately to OPM. I will pay more attention in the future.
Title: Re: Online Package Manager
Post by: dbannon on March 06, 2022, 11:50:38 pm
If and when I get the new Examples Project working, I'll be nagging OPM authors to add a demo and a metadata file !

You will be run off your feet !

Maybe ....

 ::)

Davo
Title: Re: Online Package Manager
Post by: lainz on March 12, 2022, 01:49:00 am
Hi GetMem! Can you add BGRAControls v7.4?
https://forum.lazarus.freepascal.org/index.php/topic,24176.msg436974.html#msg436974

Thanks! Have a great weekend!
Title: Re: Online Package Manager
Post by: balazsszekely on March 12, 2022, 06:30:18 am
Hi GetMem! Can you add BGRAControls v7.4?
https://forum.lazarus.freepascal.org/index.php/topic,24176.msg436974.html#msg436974

Thanks! Have a great weekend!
I updated the package, thanks for the new version. Have a great weekend!
Title: Re: Online Package Manager
Post by: d.ioannidis on March 18, 2022, 02:05:53 pm
Hi,

  could you please add the hidapi library bindings 0.3.0 0.3.2 package from https://github.com/dioannidis/HIDAPI.pas to OPM ?

  There is a demo app and I think that the relevant description fields are populated. If there is something that I need to add/edit/change for it to be included I'm happy to do it.

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on March 18, 2022, 03:09:38 pm
@Dimitrios Chr. Ioannidis

Quote
could you please add the hidapi library bindings 0.3.0 0.3.2 package from https://github.com/dioannidis/HIDAPI.pas to OPM ?
I added the package. Thank you!
Title: Re: Online Package Manager
Post by: d.ioannidis on March 18, 2022, 03:19:03 pm
Hi,

@Dimitrios Chr. Ioannidis

Quote
could you please add the hidapi library bindings 0.3.0 0.3.2 package from https://github.com/dioannidis/HIDAPI.pas to OPM ?
I added the package. Thank you!

is there a mechanism to maintain the OPM package ( updating, made some version obsolete etc ) or must be handled by you ?

( I admit didn't read all 144 pages ... )

EDIT: There was some errors that was are fixed in 0.3.2 ....

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on March 18, 2022, 03:39:33 pm
@Dimitrios Chr. Ioannidis
Quote
is there a mechanism to maintain the OPM package ( updating, made some version obsolete etc ) or must be handled by you ?
There is a way to push a newer version of your package. You can read more about the mechanism here: https://wiki.freepascal.org/Online_Package_Manager.
Unfortunately users must enable "Check external repositories for package update" in OPM->Options. It's disabled by default, because some people did not like the fact that OPM connects to various external sites. Basically it's a working, but invisible feature. :) I prefer to update the packages manually.

Quote
EDIT: There was some errors that was are fixed in 0.3.2 ....
I downloaded again the package from your github page, but the lpk file still indicates 0.3.0. Am I missing something?
Title: Re: Online Package Manager
Post by: d.ioannidis on March 18, 2022, 04:00:59 pm
@Dimitrios Chr. Ioannidis
Quote
is there a mechanism to maintain the OPM package ( updating, made some version obsolete etc ) or must be handled by you ?

< snip >

:) I prefer to update the packages manually.

OK . Thx for your work !

Quote
EDIT: There was some errors that was are fixed in 0.3.2 ....
I downloaded again the package from your github page, but the lpk file still indicates 0.3.0. Am I missing something?

No you didn't missed anything. I missed to update the package version, apologies. Now it's fixed.

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on March 18, 2022, 04:10:19 pm
@Dimitrios Chr. Ioannidis
Quote
No you didn't missed anything. I missed to update the package version, apologies. Now it's fixed.
Thank you. I updated the package.
Title: Re: Online Package Manager
Post by: AlexTP on April 02, 2022, 06:17:33 pm
The ready package
https://gitlab.com/bobby100/tiplabel
Title: Re: Online Package Manager
Post by: balazsszekely on April 02, 2022, 08:55:17 pm
The ready package
https://gitlab.com/bobby100/tiplabel
Is there some kind of documentation and a demo example?
Title: Re: Online Package Manager
Post by: bobby100 on April 02, 2022, 09:11:42 pm
The ready package
https://gitlab.com/bobby100/tiplabel
Is there some kind of documentation and a demo example?
Hi,
what is exactly needed?
The README.md is at the moment the whole documentation.
Demo is in the folder TestBed

Title: Re: Online Package Manager
Post by: balazsszekely on April 02, 2022, 09:37:56 pm
@bobby100
Quote
Hi,
what is exactly needed?
The README.md is at the moment the whole documentation.
Demo is in the folder TestBed
OK then. Do you prefer some kind of license? The lpk file does not contain any license information. 
Title: Re: Online Package Manager
Post by: bobby100 on April 02, 2022, 09:44:27 pm
I took the modified LGPL, like the most of the components I saw with Lazarus till now.
The pas file contains the license info, and the licenses are available as text files in the repository. Isn't this the usual way?

I have very little understanding of the licenses anyway  ::)
Title: Re: Online Package Manager
Post by: balazsszekely on April 02, 2022, 10:02:53 pm
I took the modified LGPL, like the most of the components I saw with Lazarus till now.
The pas file contains the license info, and the licenses are available as text files in the repository. Isn't this the usual way?

I have very little understanding of the licenses anyway  ::)

Thank you! I added the package to OPM.
Title: Re: Online Package Manager
Post by: AlexTP on April 03, 2022, 03:34:17 pm
Found this:
recALL Hash Library 16.07
FreePascal translation of HashLib (C#) with custom modifications.
https://github.com/maciejkaczkowski/rhl
I dont see the LPK file, but maybe @GetMem can create it?
Title: Re: Online Package Manager
Post by: wp on April 03, 2022, 03:42:21 pm
I dont see the LPK file, but maybe @GetMem can create it?
Why don't you do it yourself?
Title: Re: Online Package Manager
Post by: AlexTP on April 03, 2022, 03:50:11 pm
I added the LPK to hash library, take it from
https://github.com/Alexey-T/rhl
I sent the PullReq.
Title: Re: Online Package Manager
Post by: balazsszekely on April 12, 2022, 07:40:04 am
I added the LPK to hash library, take it from
https://github.com/Alexey-T/rhl
I sent the PullReq.
Thanks. I updated OPM.
Title: Re: Online Package Manager
Post by: AlexTP on April 15, 2022, 10:35:53 pm
Here I saw the link to Pascalio lib.
"It is a good idea to use the pascalio Lib"
https://wiki.freepascal.org/Raspberry_Pi_-_SPI

Can it be added?
Descr: "Input/output library for Raspberry Pi or any other Linux based microcontrollers."
Title: Re: Online Package Manager
Post by: af0815 on April 16, 2022, 09:13:50 am
AlexTP, have you ask the maintainer of the Pascal IO to do this ? Because the active Maintainer of a lib should be responsible for his code and also do the maitenance of the packages.
Title: Re: Online Package Manager
Post by: jmpessoa on April 16, 2022, 09:23:53 am
Hi, GetMem!


Please, update to "LAMW 0.8.6.2" from github:

https://github.com/jmpessoa/lazandroidmodulewizard/archive/refs/heads/master.zip


Thank you!
Title: Re: Online Package Manager
Post by: balazsszekely on April 16, 2022, 12:06:18 pm
@af0815, AlexTP
Quote
have you ask the maintainer of the Pascal IO to do this ? Because the active Maintainer of a lib should be responsible for his code and also do the maitenance of the packages.
I agree, this should be done by the package maintainer. Not so long ago I got in trouble, because a user asked for a package update. Later it turned out the pm. did not want to update the package.

@jmpessoa
Thank you! I updated the package.
Title: Re: Online Package Manager
Post by: AlexTP on April 16, 2022, 02:01:27 pm
@GetMem, okay, I wrote the asking to the project's Github.
Title: bug on online package manager on win 32 bits
Post by: calebs on May 18, 2022, 08:34:05 pm
Hello all, installed lazarus on several vm's (qos x64, antix x86, win10 ent x86 and win11 pro x64) and in all them installed lazarus fixes branch with fpcupdeluxe (the lazarus version with problem is 2.2.3 2022-05-18 fpc 3.2.3 rev lazarus 2.2.2.9-g64bc8e992e i386-win32-win32/win64
the problem is with online package manager, tried to install in all vms the zeosdbo component (as always with install button) and it failed always on win32 with socket error everytime. Can't download either, same error
switched to win64 and download the component ok, and proceed to manually install on win32 vm and worked fine.
i don't know what happen to that component, others downloaded and installed fine (on all vm's), for example
lazbarcodes, scrolltext, powerpdf, eyecandy controls...
Don't know if it is a bug.
thanks!
Title: Re: bug on online package manager on win 32 bits
Post by: HeavyUser on May 18, 2022, 11:30:39 pm
Hello all, installed lazarus on several vm's (qos x64, antix x86, win10 ent x86 and win11 pro x64) and in all them installed lazarus fixes branch with fpcupdeluxe (the lazarus version with problem is 2.2.3 2022-05-18 fpc 3.2.3 rev lazarus 2.2.2.9-g64bc8e992e i386-win32-win32/win64
the problem is with online package manager, tried to install in all vms the zeosdbo component (as always with install button) and it failed always on win32 with socket error everytime. Can't download either, same error
switched to win64 and download the component ok, and proceed to manually install on win32 vm and worked fine.
i don't know what happen to that component, others downloaded and installed fine (on all vm's), for example
lazbarcodes, scrolltext, powerpdf, eyecandy controls...
Don't know if it is a bug.
thanks!
I had a lot of socket errors too, on almost all packages installed with the online package manager.

I changed the remote repository from http to https in the options dialog and that solved my problems.

In my case it was (or is ) unstable network http:// is barely working in best of days in your case I have no idea.
Title: Re: Online Package Manager
Post by: lainz on June 11, 2022, 04:08:04 pm
Hi, there is BGRAControls v7.5  :)
Title: Re: Online Package Manager
Post by: balazsszekely on June 12, 2022, 08:11:51 pm
Quote
Hi, there is BGRAControls v7.5  :)
Thank you, I updated the package.
Title: Re: Online Package Manager
Post by: lainz on June 13, 2022, 01:01:01 am
Quote
Hi, there is BGRAControls v7.5  :)
Thank you, I updated the package.

Thanks  :)
Title: Re: Online Package Manager
Post by: jujibo on June 20, 2022, 09:15:02 am
@GetMem

There is a new version of Jujiboutils (2.5): https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/

Thanks.
Title: Re: Online Package Manager
Post by: Remy Lebeau on June 20, 2022, 05:33:17 pm
Thank you! I updated Indy.

I've checked in a handful of updates over the past few months, so OPM probably needs to be updated to the latest.
Title: Re: Online Package Manager
Post by: balazsszekely on June 21, 2022, 02:03:51 pm
@jujibo
There is a new version of Jujiboutils (2.5): https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/

@Remy Lebeau
I've checked in a handful of updates over the past few months, so OPM probably needs to be updated to the latest.

I updated both package. Thank you!
Title: Re: Online Package Manager
Post by: wp on June 23, 2022, 12:02:42 am
GetMem, please be so kind and update the TvPlanIt package, there is a new release v1.6.0.

zip file: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.6.0.zip/download
update json: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/OPM/update_tvplanit.json/download

Thank you.
Title: Re: Online Package Manager
Post by: balazsszekely on June 23, 2022, 08:11:34 am
@wp
I'm on vacation now. I will update the package as soon as possible.
Title: Re: Online Package Manager
Post by: wp on June 23, 2022, 11:08:35 am
No problem. Have a good time!

Here's another one: The industrial package was updated to v0.5:
- zip: https://sourceforge.net/projects/lazarus-ccr/files/industrialstuff/industrialstuff-0.5.0.zip/download
- update json: https://sourceforge.net/projects/lazarus-ccr/files/industrialstuff/OPM/update_industrial.json/download
Title: Re: Online Package Manager
Post by: d.ioannidis on June 24, 2022, 03:26:40 pm
Hi,

  can you update the hidapi package ? Current version is v0.3.4 .

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on June 26, 2022, 01:55:08 pm
@wp, @Dimitrios Chr. Ioannidis

I updated the packages. Thanks for the new version!
Title: Re: Online Package Manager
Post by: wp on June 30, 2022, 11:21:07 pm
GetMem, here's another updated package for OPM: ScrollText v1.1.3 (based on this forum thread (https://forum.lazarus.freepascal.org/index.php/topic,59639.msg444750.html)).

zip file location: https://sourceforge.net/projects/lazarus-ccr/files/ScrollText/scrolltext-1.1.3.zip/download
Update json: https://sourceforge.net/projects/lazarus-ccr/files/ScrollText/OPM/update_scrolltext.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on July 01, 2022, 07:38:55 am
GetMem, here's another updated package for OPM: ScrollText v1.1.3 (based on this forum thread (https://forum.lazarus.freepascal.org/index.php/topic,59639.msg444750.html)).

zip file location: https://sourceforge.net/projects/lazarus-ccr/files/ScrollText/scrolltext-1.1.3.zip/download
Update json: https://sourceforge.net/projects/lazarus-ccr/files/ScrollText/OPM/update_scrolltext.json/download
Done. Thank you!
Title: Re: Online Package Manager
Post by: d.ioannidis on July 08, 2022, 07:07:24 pm
Hi,

  hidapi new version v0.4.0 ( https://github.com/dioannidis/HIDAPI.pas ) .
 
  Adds a new API function introduced in hidapi 0.12.0 .

  You can always download the release zip from from https://github.com/dioannidis/HIDAPI.pas/archive/refs/tags/v0.4.0.zip.

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on July 09, 2022, 03:45:11 pm
@Dimitrios Chr. Ioannidis

Quote
hidapi new version v0.4.0 ( https://github.com/dioannidis/HIDAPI.pas ) .
 
  Adds a new API function introduced in hidapi 0.12.0 .

  You can always download the release zip from from https://github.com/dioannidis/HIDAPI.pas/archive/refs/tags/v0.4.0.zip.
I updated the package, thanks for the new version.
Title: Re: Online Package Manager
Post by: Guva on August 13, 2022, 04:24:21 pm

Hi GetMem. Please update to Ray4Laz. 
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.2.zip
Json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json

thank you in advance  ;)

Title: Re: Online Package Manager
Post by: jujibo on August 15, 2022, 10:09:58 am
@GetMem

There is a new version of Jujiboutils (2.5.1): https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on August 15, 2022, 01:05:29 pm
Quote
Hi GetMem. Please update to Ray4Laz.
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.2.zip
Json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json

thank you in advance  ;)


Quote
@GetMem

There is a new version of Jujiboutils (2.5.1): https://sourceforge.net/projects/lazarus-ccr/files/Jujiboutils/

Thanks.

I updated the packages. Thank you both!
Title: Re: Online Package Manager
Post by: Guva on August 15, 2022, 05:59:27 pm
getmem please update the ray4laz package.
a critical error has been found in the raylib release.
I recompiled libraylib.a
Title: Re: Online Package Manager
Post by: balazsszekely on August 15, 2022, 06:57:38 pm
Quote
getmem please update the ray4laz package.
a critical error has been found in the raylib release.
I recompiled libraylib.a
Done. :)
Title: Re: Online Package Manager
Post by: jujibo on August 25, 2022, 12:53:52 pm
@GetMem

There is a new version of IBX ( IBX4Lazarus 2.5.0 ): https://www.mwasoftware.co.uk/ibx

Thanks.
Title: Re: Online Package Manager
Post by: balazsszekely on August 25, 2022, 01:59:14 pm
@GetMem

There is a new version of IBX ( IBX4Lazarus 2.5.0 ): https://www.mwasoftware.co.uk/ibx

Thanks.
Done. Thank you!
Title: Re: Online Package Manager
Post by: El Salvador on August 31, 2022, 11:26:53 pm
I noticed that Lazarus 2.2 fails to compile the luicontrols package (part of luipack) for breaking change on DoMeasureTextPosition for TCustomLabels. See https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/39523

The good news is that the fix is already present in the Luiz repo (https://github.com/blikblum/luipack/commit/4f77c466c25a7c509680f39b2e4daa6082d3ef0e#diff-cae7cd79681a00a50b060e286911873e324ffd1dc ). Do we update?
Title: Re: Online Package Manager
Post by: balazsszekely on September 01, 2022, 07:20:55 am
I noticed that Lazarus 2.2 fails to compile the luicontrols package (part of luipack) for breaking change on DoMeasureTextPosition for TCustomLabels. See https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/39523

The good news is that the fix is already present in the Luiz repo (https://github.com/blikblum/luipack/commit/4f77c466c25a7c509680f39b2e4daa6082d3ef0e#diff-cae7cd79681a00a50b060e286911873e324ffd1dc ). Do we update?
Done. Thank you!
Title: Re: Online Package Manager
Post by: Mobius1 on September 29, 2022, 10:28:01 pm
Hi,
Is there any automated way of updating a package on OPM?

I'm asking because I followed all the steps from https://wiki.freepascal.org/Online_Package_Manager#Update_a_package even sent the email to opm@lazarus-ide.org but the package that I informed didn't updated properly.
Title: Re: Online Package Manager
Post by: balazsszekely on September 30, 2022, 07:01:42 am
Hi Mobius1,

Quote
Is there any automated way of updating a package on OPM?
Unfortunately no.  I have to do it manually.

Quote
sent the email to opm@lazarus-ide.org
I received your mail and updated the package on september 09.

Quote
but the package that I informed didn't updated properly.
Can you please be more specific. What went wrong with the update?

 I did update the package again today(30/09/2022).
Title: Re: Online Package Manager
Post by: Mobius1 on September 30, 2022, 08:28:13 pm
Quote from: GetMem
Can you please be more specific. What went wrong with the update?
The update you did today seems to be working fine. Previously there were only 2 packages on the big package which were part of an old version, now it has all the packages from the new one and on my initial tests its working fine.

I know that making an automation system is difficult when you have to manually update all those packages but it surely would make your life easier.
Title: Re: Online Package Manager
Post by: balazsszekely on October 01, 2022, 07:10:00 pm
@Mobius1
Quote
The update you did today seems to be working fine. Previously there were only 2 packages on the big package which were part of an old version, now it has all the packages from the new one and on my initial tests its working fine.
I’m glad it was successful.

Quote
I know that making an automation system is difficult when you have to manually update all those packages but it surely would make your life easier.
Yes, I agree.
Title: Re: Online Package Manager
Post by: wp on November 09, 2022, 06:27:47 pm
GetMem, please add the attached new package to OPM: it's the TGridPrinter and the TGridPrintPreviewDialog initiated in this forum thread (https://forum.lazarus.freepascal.org/index.php/topic,60905.msg457200.html).
And as a teaser, here's a screenshot of one of the sample projects along with the print preview implemented in this package.

Title: Re: Online Package Manager
Post by: balazsszekely on November 09, 2022, 06:55:13 pm
Quote
GetMem, please add the attached new package to OPM: it's the TGridPrinter and the TGridPrintPreviewDialog initiated in this forum thread.

    Release versions (currently v0.2.0) will be available at https://sourceforge.net/projects/lazarus-ccr/files/GridPrinter/
    The development version is at https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/gridprinter/
    I started a wiki documentation page at https://wiki.freepascal.org/GridPrinter, to be completed in the next days.

And as a teaser, here's a screenshot of one of the sample projects along with the print preview implemented in this package.

@wp
Very nicely done! I added the package to OPM.
Title: Re: Online Package Manager
Post by: silvestre on November 09, 2022, 07:13:40 pm
GetMen, The OPM is a fantastic job, if at some point a screenshot could be added to the description, it would look amazing. I know it's a lot of work, it's just an idea. Thank you for everything you have done so far.

Quote
GetMem, please add the attached new package to OPM: it's the TGridPrinter and the TGridPrintPreviewDialog initiated in this forum thread.

    Release versions (currently v0.2.0) will be available at https://sourceforge.net/projects/lazarus-ccr/files/GridPrinter/
    The development version is at https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/gridprinter/
    I started a wiki documentation page at https://wiki.freepascal.org/GridPrinter, to be completed in the next days.

And as a teaser, here's a screenshot of one of the sample projects along with the print preview implemented in this package.

@wp
Very nicely done! I added the package to OPM.
Title: Re: Online Package Manager
Post by: balazsszekely on November 10, 2022, 06:21:07 am
@silvestre

Quote
GetMen, The OPM is a fantastic job, if at some point a screenshot could be added to the description, it would look amazing. I know it's a lot of work, it's just an idea. Thank you for everything you have done so far.
Thanks! Screenshot with what? Images would take to much time to load anyways.
Title: Re: Online Package Manager
Post by: silvestre on November 10, 2022, 10:41:38 am
Hi GetMen,

I am referring to a small screenshot presentation of the application concerning the package, the visual aspect would gain a lot, but it is only an aesthetic issue.

For fast loading of images in the web domain, there are techniques such as the use of CSS SPRITES, which allows to group many images, right now I am not aware if there is any technical limitation in reference to the size, because in this case the images would be larger than simple icons than usual. There are a multitude of online applications that automatically pack such files.

But as I said, it was only an idea in reference to the presentation of information, and nothing strictly essential...

@silvestre

Quote
GetMen, The OPM is a fantastic job, if at some point a screenshot could be added to the description, it would look amazing. I know it's a lot of work, it's just an idea. Thank you for everything you have done so far.
Thanks! Screenshot with what? Images would take to much time to load anyways.
Title: Re: Online Package Manager
Post by: Jurassic Pork on November 11, 2022, 06:33:13 am
Hello GetMem,
there is a new release of Lazserial Package (version 0.6) here (https://github.com/JurassicPork/TLazSerial/releases/tag/v0.6)
Quote
new in v0.6 version (11/2022)
 Fixes for OS-X (thanks to rphoover), SynSer(synaser) properties now persistent, v0.3 of GPS simulator (better GUI on Mac OS-X and Linux)
 On OS-X you must set the property  SynSer/NonBlock to True (https://forum.lazarus.freepascal.org/index.php/topic,20481.msg456012.html#msg456012)  in the properties of TLazserial component.
 flags variable  used in GetSerialPortNames (linux).

 Tested on Windows 11 - Lazarus 2.0.12, Ubuntu 20.04 - Lazarus 2.2, Mac OS-X Catalina 10.15 - Lazarus 2.0.10  with 2 USB serial ports.

thanks
 
 
Title: Re: Online Package Manager
Post by: balazsszekely on November 12, 2022, 08:05:10 am
Hi Jurassic Pork,

Quote
there is a new release of Lazserial Package (version 0.6) here
Thank you! I updated the package.
Title: Re: Online Package Manager
Post by: Mobius1 on November 26, 2022, 07:08:41 pm
Hi GetMem,

I sent you an email with the update for the package REST DataWare, did it not arrived for you?
Anyways the zip for the new version can be found here (https://github.com/OpenSourceCommunityBrasil/REST-DataWare/archive/refs/tags/v2.0.7.zip).
There are no new packages on this one, just fixes.
Title: Re: Online Package Manager
Post by: balazsszekely on November 26, 2022, 07:50:47 pm
Hi GetMem,

I sent you an email with the update for the package REST DataWare, did it not arrived for you?
Anyways the zip for the new version can be found here (https://github.com/OpenSourceCommunityBrasil/REST-DataWare/archive/refs/tags/v2.0.7.zip).
There are no new packages on this one, just fixes.
Hi Mobius1,

I updated the package. Thank you!
Title: Re: Online Package Manager
Post by: Mobius1 on November 26, 2022, 11:32:49 pm
Hi Mobius1,

I updated the package. Thank you!
thanks!
Title: Re: Online Package Manager
Post by: theo on December 13, 2022, 02:16:48 pm
Hi GetMem,

Would you like to add the Lazarus IDE Search Panel to the OPM?
Category: LazIDEPlugin

Information:
https://github.com/theo222/laz_idesearchpanel

ZIP
https://github.com/theo222/laz_idesearchpanel/archive/refs/tags/v1.0.0.zip

Thank you!
Title: Re: Online Package Manager
Post by: balazsszekely on December 13, 2022, 02:39:13 pm
Hi theo,

Quote
Would you like to add the Lazarus IDE Search Panel to the OPM?
Category: LazIDEPlugin

Done! Thanks for the package.
Title: Re: Online Package Manager
Post by: theo on December 13, 2022, 02:56:34 pm
Done! Thanks for the package.

Thank you!
Title: Re: Online Package Manager
Post by: wp on December 15, 2022, 02:25:01 pm
GetMem, could you please update the GridPrinter in OPM? It is now at version 0.4 with lots of bug fixes and included xml documentation as well as a snapshot of the wiki page as chm file.

Download of zip: https://sourceforge.net/projects/lazarus-ccr/files/GridPrinter/gridprinter-v0.4.0.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on December 15, 2022, 10:17:10 pm
GetMem, could you please update the GridPrinter in OPM? It is now at version 0.4 with lots of bug fixes and included xml documentation as well as a snapshot of the wiki page as chm file.

Download of zip: https://sourceforge.net/projects/lazarus-ccr/files/GridPrinter/gridprinter-v0.4.0.zip/download
Done. Thank you!
Title: Re: Online Package Manager
Post by: KodeZwerg on December 15, 2022, 11:06:08 pm
Problem with package FPSpreadsheet in the crypto package, help please.

I try to install it via OPM, the dependency to DCP i have but I think it is a wrong version?

I attached some snapshots of what is going on.
Title: Re: Online Package Manager
Post by: wp on December 15, 2022, 11:52:25 pm
No problem here. Just installed DCPCrypt and all the FPSpreadsheet packages into Laz 2.2.4/fpc3.2.2 (64bit) on Windows 11. No problems. Did you try a clean rebuild of the IDE? It's often an easy fix of such compilation issues.

the dependency to DCP i have but I think it is a wrong version?
When you have it from OPM, just as your screenshot shows, it's the correct version.

[EDIT]
Please post your next question regarding fprspreadsheet into the corresponding board (under "Packages and Libraries") - it's too easily overlooked in the "eternal" OPM post.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on December 15, 2022, 11:59:05 pm
Hey WP,

No problem here. Just installed DCPCrypt and all the FPSpreadsheet packages into Laz 2.2.4/fpc3.2.2 (64bit) on Windows 11. No problems. Did you try a clean rebuild of the IDE? It's often an easy fix of such compilation issues.

I've been trying to debug this with KodeZwerg on the Discord server and the problem arises when laz_fpspreadsheet_crypto is compiled and not laz_fpspreadsheet

Can you try and have something depend on the package with the _crypto on it?

Thanks a bunch in advance and for all your efforts !!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: wp on December 16, 2022, 12:15:55 am
Can you try and have something depend on the package with the _crypto on it?
spready (https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/applications/spready/) depends on the fpspreadsheet_crypto package. It compiles and runs nicely on the system which I had setup in the previous post for dcpcrypt, fpspreadsheet and its companion packages (among them the _crypto).

So, the problem is that when you compile the crypto package the dcpcrypt cannot find its units? Try a clean compilation of dcpcrypt first.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on December 16, 2022, 12:51:28 am
Hey WP,

So, the problem is that when you compile the crypto package the dcpcrypt cannot find its units? Try a clean compilation of dcpcrypt first.

Hummm, he's now having issues with a missing path to, or a missing opensslsockets unit... And that is absolutely needed for OPM to compile.

So... perhaps something more sinister is going on ;)

Cheers,
Gus
Title: Re: Online Package Manager
Post by: KodeZwerg on December 16, 2022, 01:35:08 am
I am sorry to jump in, yes something (me) has fully broken the installation without know how.
I do currently re-install Lazarus/FPC, feel free to remove my messages from this thread.
Please excuse my non-knowledge about what i was doing wrong.
Title: Re: Online Package Manager
Post by: lainz on December 17, 2022, 03:56:39 pm
Hi, sorry for posting it here, but I get this package LazProfiler with OPM with Lazarus 2.2.2, and then Lazarus IDE doesn't works fine once installed.

I should upgrade Lazarus, or the bug still persists in the newer version?

Thanks.
Title: Re: Online Package Manager
Post by: lainz on December 17, 2022, 04:10:23 pm
Hi again, another thing is that I can't install BGRABitmap and BGRAControls from "External Repository".

Thanks.  :)
Title: Re: Online Package Manager
Post by: balazsszekely on December 17, 2022, 10:52:54 pm
Hi lainz,

Quote
Hi, sorry for posting it here, but I get this package LazProfiler with OPM with Lazarus 2.2.2, and then Lazarus IDE doesn't works fine once installed.
Unfortunately I now nothing about LazProfiler, but I can confirm that it doesn't work properly. Can you please contact the package maintainer?

Quote
Hi again, another thing is that I can't install BGRABitmap and BGRAControls from "External Repository".
I did run a quick test, install packages from external repository works fine at my side. What error do you get? Which version of Lazarus/FPC?
Title: Re: Online Package Manager
Post by: wp on December 17, 2022, 11:27:38 pm
Fixed an old issue with DCPCrypt being unable to correctly hash files > 4GB. GetMem, could you please update the package in OPM? The current release is at https://sourceforge.net/projects/lazarus-ccr/files/DCPcrypt/DCPCrypt%202.0.4.2/dcpcrypt-2.0.4.2.zip/download.
Title: Re: Online Package Manager
Post by: lainz on December 18, 2022, 12:42:33 am
Quote
Hi again, another thing is that I can't install BGRABitmap and BGRAControls from "External Repository".
I did run a quick test, install packages from external repository works fine at my side. What error do you get? Which version of Lazarus/FPC?

Hi, I'm using Linux Mint 21 Cinammon 64 bit, Lazarus Project 2.2.4-0 amd64.deb downloaded from Sourceforge.

Unfortunately the error Window closes really fast. Attached a screenshot that seems that the external package isn't listed..
Title: Re: Online Package Manager
Post by: balazsszekely on December 18, 2022, 08:18:42 am
Fixed an old issue with DCPCrypt being unable to correctly hash files > 4GB. GetMem, could you please update the package in OPM? The current release is at https://sourceforge.net/projects/lazarus-ccr/files/DCPcrypt/DCPCrypt%202.0.4.2/dcpcrypt-2.0.4.2.zip/download.
Done. Thanks.

Hi, I'm using Linux Mint 21 Cinammon 64 bit, Lazarus Project 2.2.4-0 amd64.deb downloaded from Sourceforge.

Unfortunately the error Window closes really fast. Attached a screenshot that seems that the external package isn't listed..
Did you changed OPM->Options->General->"Check external repositories for package update" from Never to something else?
Title: Re: Online Package Manager
Post by: wp on December 18, 2022, 11:43:30 am
Fixed an old issue with DCPCrypt being unable to correctly hash files > 4GB. GetMem, could you please update the package in OPM? The current release is at https://sourceforge.net/projects/lazarus-ccr/files/DCPcrypt/DCPCrypt%202.0.4.2/dcpcrypt-2.0.4.2.zip/download.
Done. Thanks.
Thank you.

In the package, there is an empty file "dcpcrypt.opkman". What is this good for?
Title: Re: Online Package Manager
Post by: balazsszekely on December 18, 2022, 12:13:16 pm
@wp
Quote
In the package, there is an empty file "dcpcrypt.opkman". What is this good for?
It shouldn't be there. I updated the package.
Title: Re: Online Package Manager
Post by: wp on December 18, 2022, 12:40:33 pm
Thanks
Title: Re: Online Package Manager
Post by: lainz on December 18, 2022, 01:16:51 pm
Hi, I'm using Linux Mint 21 Cinammon 64 bit, Lazarus Project 2.2.4-0 amd64.deb downloaded from Sourceforge.

Unfortunately the error Window closes really fast. Attached a screenshot that seems that the external package isn't listed..
Did you changed OPM->Options->General->"Check external repositories for package update" from Never to something else?

Hi, I changed it from Never to Every few minutes or something like that. And still when clicking on Install from External it fails.
Title: Re: Online Package Manager
Post by: balazsszekely on December 18, 2022, 08:38:24 pm
Hi, I changed it from Never to Every few minutes or something like that. And still when clicking on Install from External it fails.
I tested with a Linux Mint 20.02 Cinnamon VM. It works fine at my side(see attached picture).
Title: Re: Online Package Manager
Post by: wp on December 18, 2022, 11:49:43 pm
Hello GetMem, here's another updated package: CalLite at v0.3.10 (some bugfixes) https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.10.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on December 19, 2022, 06:25:43 am
Hello GetMem, here's another updated package: CalLite at v0.3.10 (some bugfixes) https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.10.zip/download
Done. Thanks.
Title: Re: Online Package Manager
Post by: lainz on December 19, 2022, 02:06:14 pm
Hi, I changed it from Never to Every few minutes or something like that. And still when clicking on Install from External it fails.
I tested with a Linux Mint 20.02 Cinnamon VM. It works fine at my side(see attached picture).

What It can be? A missing library in Mint 21?
Title: Re: Online Package Manager
Post by: balazsszekely on December 19, 2022, 02:38:14 pm
@lainz
Quote
What It can be? A missing library in Mint 21?
The OpenSSL libraries. On windows OPM downloads the dll's(version 1.1.1) from:
  32 bit: http://packages.lazarus-ide.org/openssl-1.1.1o-i386-win32.zip
  64 bit:http://packages.lazarus-ide.org/openssl-1.1.1o-x64_86-win64.zip
On linux it should be installed by default. Open a terminal and type: openssl version
Title: Re: Online Package Manager
Post by: lainz on December 19, 2022, 03:50:54 pm
@lainz
Quote
What It can be? A missing library in Mint 21?
The OpenSSL libraries. On windows OPM downloads the dll's(version 1.1.1) from:
  32 bit: http://packages.lazarus-ide.org/openssl-1.1.1o-i386-win32.zip
  64 bit:http://packages.lazarus-ide.org/openssl-1.1.1o-x64_86-win64.zip
On linux it should be installed by default. Open a terminal and type: openssl version

I have the version 3.0.2, works the same?

Quote
lainz@lainz-VirtualBox:~/Escritorio$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
Title: Re: Online Package Manager
Post by: balazsszekely on December 19, 2022, 05:30:10 pm
@lainz

According to the documentation:
Quote
OpenSSL 3.0 is a major release and not fully backwards compatible with the previous release. Most applications that worked with OpenSSL 1.1.1 will still work unchanged
So yes, it should work(most likely :) )
Title: Re: Online Package Manager
Post by: wp on December 19, 2022, 07:34:54 pm
Hello GetMem, here's another updated package: CalLite at v0.3.10 (some bugfixes) https://sourceforge.net/projects/lazarus-ccr/files/CalLite/callite-0.3.10.zip/download
Done. Thanks.
Thanks.

But here's another one: ExtraSyn had compilation issues. The new version (v1.2.1) is at https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/extrasyn-v1.2.1.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on December 19, 2022, 08:12:44 pm
But here's another one: ExtraSyn had compilation issues. The new version (v1.2.1) is at https://sourceforge.net/projects/lazarus-ccr/files/extrasyn/extrasyn-v1.2.1.zip/download
No problem. I updated the package.
Title: Re: Online Package Manager
Post by: lainz on December 19, 2022, 10:15:38 pm
@lainz

According to the documentation:
Quote
OpenSSL 3.0 is a major release and not fully backwards compatible with the previous release. Most applications that worked with OpenSSL 1.1.1 will still work unchanged
So yes, it should work(most likely :) )

Except when It doesn't  :D

Don't worry, better I prepare a new release of bgracontrols and send it to you. With the OPM official repository I have no problems.
Title: Re: Online Package Manager
Post by: balazsszekely on December 20, 2022, 06:38:12 am
@lainz

There is really nothing I can do, since OPM only includes the opensslsockets in the uses. I did not implement any openssl specific stuff.

PS: I did take a quick look, openssl 3.0.x it is supported in FPC trunk(maybe 3.2.4 too, did not checked). Can you please install Lazarus/FPC trunk with FPCDeluxe and give it a try? Another solution to install openssl 1.1.1 in your linux distro, I'm sure that more then one version can be installed at the same time. 
Title: Re: Online Package Manager
Post by: Espectr0 on December 28, 2022, 05:28:03 pm
@GetMem

the sdl2 package can be updated with the latest of
https://github.com/PascalGameDevelopment/SDL2-for-Pascal (https://github.com/PascalGameDevelopment/SDL2-for-Pascal) ?
Title: Re: Online Package Manager
Post by: balazsszekely on December 28, 2022, 05:50:46 pm
Hi Espectr0,
Quote
the sdl2 package can be updated with the latest of
https://github.com/PascalGameDevelopment/SDL2-for-Pascal ?
I did take a quick look, sdl2 is pl_* package actively maintained by @avra. Let's wait and see if he agrees to upgrade the package.
Title: Re: Online Package Manager
Post by: Espectr0 on December 28, 2022, 06:08:17 pm
great,

 I was asking because I saw that the date of pl_sdl2 is from 2020 and this other one is constantly being updated.

 thank you
Title: Re: Online Package Manager
Post by: avra on December 29, 2022, 08:56:11 am
I was asking because I saw that the date of pl_sdl2 is from 2020 and this other one is constantly being updated.
Did you bother actually comparing 2 mentioned SDL2 libraries? They are different. Use the one which you prefer.
All pl_* components are from CodeTyphon and I convert them to Lazarus from time to time. When there is a reasonable request (like not working with current official Lazarus version) I can update it sooner, but I do not do it just to keep with fashion. If you are in a hurry and don't like waiting then you can update it your self. Everything needed can be found at these 2 repos:
https://bitbucket.org/avra/ct4laz/src/master/
https://bitbucket.org/avra/ct2laz/src/master/
Title: Re: Online Package Manager
Post by: lainz on December 30, 2022, 10:18:34 pm
Hi getmem, seems that the package LazProfiler is outdated (2019 latest alpha release) and also I've received no response in his main thread:
https://forum.lazarus.freepascal.org/index.php/topic,38983.msg465149.html#msg465149

It's better to remove from OPM now, because it fails the user installation...
Title: Re: Online Package Manager
Post by: wp on December 30, 2022, 11:33:42 pm
Hi getmem, seems that the package LazProfiler is outdated (2019 latest alpha release) and also I've received no response in his main thread:
https://forum.lazarus.freepascal.org/index.php/topic,38983.msg465149.html#msg465149

It's better to remove from OPM now, because it fails the user installation...
Isn't this a bit harsh? You posted your question about the status four days ago. What if the author did not see the post? And being 3 year without updates also does not automatically mean that the package is orphaned - we have many packages which did not see any updates for a much longer time.

It is wrong that the package fails to install. But I do agree that it breaks the IDE because it contains a lot of writeln instructions. After replacing them by DebugLn this issue is gone, but I still was not able to get any output out of the tool - maybe because I did not try long enough to learn how it works.

I think the least thing to be done should be to contact the author directly, to tell him that the package is buggy and to ask him whether he is still maintaining the package. If he does not and if no other user picks it up, then we could discuss about removing it.
Title: Re: Online Package Manager
Post by: lainz on December 30, 2022, 11:38:56 pm
Well there is apull request without comments by the author, for me looks abandoned.

I've sent a PM to the author, let's see...
Title: Re: Online Package Manager
Post by: wp on January 12, 2023, 06:44:43 pm
When answering the post https://forum.lazarus.freepascal.org/index.php/topic,61823.msg466410.html#msg466410 I noticed that the OPM version of FPSpreadsheet does not list the package laz_fpspreadsheet_dataset.lpk which therefore cannot be installed via OPM. After downloading from OPM I do see the lpk file as well as the corresponding units. Therefore, it is probably only the fpspreadsheet json file which is missing the laz_fpspreadsheet_dataset package. GetMem, could you please add this for me?
Title: Re: Online Package Manager
Post by: balazsszekely on January 12, 2023, 07:31:55 pm
When answering the post https://forum.lazarus.freepascal.org/index.php/topic,61823.msg466410.html#msg466410 I noticed that the OPM version of FPSpreadsheet does not list the package laz_fpspreadsheet_dataset.lpk which therefore cannot be installed via OPM. After downloading from OPM I do see the lpk file as well as the corresponding units. Therefore, it is probably only the fpspreadsheet json file which is missing the laz_fpspreadsheet_dataset package. GetMem, could you please add this for me?
Done.
Title: Re: Online Package Manager
Post by: wp on January 12, 2023, 07:48:52 pm
Thanks a lot!
Title: Re: Online Package Manager
Post by: lainz on January 13, 2023, 01:29:32 am
I've not get any response from LazProfiler author since 2022 12 30...
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2023, 08:16:28 am
@lainz
Quote
I've not get any response from LazProfiler author since 2022 12 30...
Can be fixed? I will wait a few more days, maybe somebody will take a look at it.
As a side note, LazProfiler is not the only package that is not working with more recent versions of FPC/Lazraus. At least 40-50% of the packages are not maintained regularly or not maintained at all. With each new released version, the probability that a particular package will broke increases. At least, now there is a clear warning in OPM, that package XY is not tested with the current version.
Title: Re: Online Package Manager
Post by: wp on January 14, 2023, 12:20:50 pm
At least, now there is a clear warning in OPM, that package XY is not tested with the current version.
Are these the lines "Lazarus compatibility" and "FPC compatibility"? How can the author/maintainer update this information? Tell you when an update is requested?
Title: Re: Online Package Manager
Post by: lainz on January 14, 2023, 02:43:23 pm
Ok I can understand. Also bgrabitmap and bgracontrols needs dev branch to work in trunk.
Title: Re: Online Package Manager
Post by: balazsszekely on January 14, 2023, 09:46:08 pm
@wp
Quote
Are these the lines "Lazarus compatibility" and "FPC compatibility"?
Yes.

Quote
How can the author/maintainer update this information?
The latest stable version of FPC/Lazarus is automatically added + Lazarus Trunk.

Quote
Tell you when an update is requested?
Only in special cases, when a package  does not support Laz version x or FPC version y.




@lainz
Quote
Ok I can understand. Also bgrabitmap and bgracontrols needs dev branch to work in trunk.
I will remove it, if nobody willing to maintain it.
Title: Re: Online Package Manager
Post by: wp on January 15, 2023, 07:48:10 pm
Quote
How can the author/maintainer update this information?
The latest stable version of FPC/Lazarus is automatically added + Lazarus Trunk.

Quote
Tell you when an update is requested?
Only in special cases, when a package  does not support Laz version x or FPC version y.

But there is also the case that a package is submitted some time ago when - say - Laz 2.0.12/FPC 3.2.0  were up-to-date, and was not changed since because it is considered complete by the author and also is not affected by the changes in Laz/FPC. How is the version information in OPM updated then? I guess it is not updated at all as I'd conclude from the example of the ColorPalette package which is marked to be tested up to Laz 2.0.2/FPC 3.0.4 although I just checked to see it working with current Laz trunk/FPC 3.2.2.

[EDIT]
I checked all packages that I maintain whether they work with the current release version, Laz 2.2.4/FPC 3.2.2, and I found that their demo/test projects work fine on Win-64bit; the only one which crashes is the TParadoxDataset package which works on Win-32bit though. I did not test other widgetsets.

Here's a list of all these packages:
Please update the OPM record of tested versions for these packages. (BTW, usually it is marked that packages work with versions as old as Laz 2.0/FPC3.0 - I doubt that is information is valid)

During the test I noticed that the lazbarcodes package requires an update. Its zip file is here: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-2.0.0.zip/download

There will be also an update for the tvplanit package in a few days.
Title: Re: Online Package Manager
Post by: balazsszekely on January 16, 2023, 10:05:42 am
@wp
Quote
captcha
chemtext
colorpalette
extrasyn
fpspreadsheet
gridprinter
industrial
jvcllaz
lazbarcodes
lazmapviewer
mbcolorlib
spktoolbar
tparadoxdataset -- 32 bit only!!!
tvplanit
I updated the packages. Please test.

Quote
BTW, usually it is marked that packages work with versions as old as Laz 2.0/FPC3.0 - I doubt that is information is valid
After 2.4.0 is released, I will remove the FPC: 3.0.x and Lazarus 2.0.x series. In my opinion there is no point to support old versions.

Quote
During the test I noticed that the lazbarcodes package requires an update. Its zip file is here: https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-2.0.0.zip/download
Done.

Quote
There will be also an update for the tvplanit package in a few days.
OK.
Title: Re: Online Package Manager
Post by: wp on January 18, 2023, 12:16:01 pm
I updated the packages. Please test.
Thank you.

Quote
There will be also an update for the tvplanit package in a few days.
OK.
Here it is: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.8.0.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on January 18, 2023, 03:08:26 pm
I updated the packages. Please test.
Thank you.

Quote
There will be also an update for the tvplanit package in a few days.
OK.
Here it is: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.8.0.zip/download
I updated TVPlanit. Thanks.
Title: Re: Online Package Manager
Post by: lainz on January 18, 2023, 04:25:48 pm
Hi GetMem, can you update bgrabitmap and bgracontrols to state that doesn't works anymore with FPC 3.0.4

For now the code remains the same. Until we fix trunk issues.
Title: Re: Online Package Manager
Post by: balazsszekely on January 18, 2023, 04:46:12 pm
Hi GetMem, can you update bgrabitmap and bgracontrols to state that doesn't works anymore with FPC 3.0.4

For now the code remains the same. Until we fix trunk issues.
I updated the information. Thanks.
Title: Re: Online Package Manager
Post by: wp on January 18, 2023, 05:23:19 pm
Thank you.
Title: Re: Online Package Manager
Post by: lainz on January 18, 2023, 10:20:49 pm
Thanks  :)
Title: Re: Online Package Manager
Post by: wp on January 22, 2023, 12:10:47 pm
Based on the discussion in https://forum.lazarus.freepascal.org/index.php/topic,61933.msg467601.html I am submitting an updated version of LazBarcodes (v2.0.1) which provides better compatibility with the previous major version 1.0.4.

The zip file of the new version can be found at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-2.0.1.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on January 22, 2023, 12:27:55 pm
Based on the discussion in https://forum.lazarus.freepascal.org/index.php/topic,61933.msg467601.html I am submitting an updated version of LazBarcodes (v2.0.1) which provides better compatibility with the previous major version 1.0.4.

The zip file of the new version can be found at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-2.0.1.zip/download
I updated the package.
Title: Re: Online Package Manager
Post by: wp on January 22, 2023, 12:35:29 pm
Thank you.
Title: Re: Online Package Manager
Post by: lainz on January 30, 2023, 06:04:34 pm
Hi. About the LazProfiler package the author Pascal says that's open for pull requests. So if anyone is interested can fix the package.
Title: Re: Online Package Manager
Post by: balazsszekely on January 30, 2023, 06:40:07 pm
Hi. About the LazProfiler package the author Pascal says that's open for pull requests. So if anyone is interested can fix the package.
Thanks for the info. Let's hope somebody will fix it soon.
Title: Re: Online Package Manager
Post by: wp on February 01, 2023, 11:26:27 pm
GetMem, could you please add another update of LazBarcodes? It is at version 2.0.2 now (https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-2.0.2.zip/download) and hopefully fixes the installation issue.
Title: Re: Online Package Manager
Post by: balazsszekely on February 01, 2023, 11:33:58 pm
GetMem, could you please add another update of LazBarcodes? It is at version 2.0.2 now (https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-2.0.2.zip/download) and hopefully fixes the installation issue.
Done! Thanks for the new version.
Title: Re: Online Package Manager
Post by: wp on February 02, 2023, 12:30:35 am
Thank you. It did not solve the installation issue though.

But as I found out now, there are some unexpected files in the directory into which OPM unzipped the download. Without these files compilation runs correctly.

The reason for these "stray" files could be that I have a common "packages" folder into which OPM does all the installations. This means that older installations of LazBarcodes and the new installation went into the same folder and were mixed up.

Could it be that OPM does not delete the directories into which it unzips the downloads?
Title: Re: Online Package Manager
Post by: balazsszekely on February 02, 2023, 07:37:33 am
Thank you. It did not solve the installation issue though.

But as I found out now, there are some unexpected files in the directory into which OPM unzipped the download. Without these files compilation runs correctly.

The reason for these "stray" files could be that I have a common "packages" folder into which OPM does all the installations. This means that older installations of LazBarcodes and the new installation went into the same folder and were mixed up.

Could it be that OPM does not delete the directories into which it unzips the downloads?
It does delete the directories, IIRC you were the one who suggested that OPM should clear the old directory just before installing a package. So I did a quick debug, see attached screenshots, just before and after the delete. It works fine at my side, but maybe those files are in use for some reason?
Title: Re: Online Package Manager
Post by: wp on February 02, 2023, 12:01:46 pm
Now I added a file to the folder src in the installation folder used by OPM for LazBarcodes and repeated the installation - the file is still there afterwards! No file of the destination folder was open, the folder itself was not opened in the Explorer either.

On the other hand, when I simulate your code in a simple test application everything works fine. (see attachment)

Strange...
Title: Re: Online Package Manager
Post by: balazsszekely on February 02, 2023, 12:36:16 pm
Now I added a file to the folder src in the installation folder used by OPM for LazBarcodes and repeated the installation - the file is still there afterwards! No file of the destination folder was open, the folder itself was not opened in the Explorer either.

On the other hand, when I simulate your code in a simple test application everything works fine. (see attachment)

Strange...
I did the same at my side an it's working fine. Can you please add the following code(opkman_zipper, line: 161):
Code: Pascal  [Select][+][-]
  1.    DelDir := FDstDir + MPkg.PackageBaseDir;
  2.    if DirectoryExists(DelDir) then
  3.        if not CleanDirectory(DelDir) then
  4.           ShowMessage(SysErrorMessage(GetLastOSError));      
Maybe we get an idea why the delete fails.
Title: Re: Online Package Manager
Post by: wp on February 02, 2023, 12:54:25 pm
I found it: The new code is not yet in the release (I did my previous tests with Laz 2.2.4):

Code: Pascal  [Select][+][-]
  1. // opkman_zipper, TPackageUnzipper.Execute
  2. //Laz main:
  3.       if DirectoryExists(DelDir) then
  4.         CleanDirectory(DelDir);
  5.  
  6. //Laz 2.2.4:
  7.         if DirectoryExists(DelDir) then
  8.           DeleteDirectory(DelDir, False);

Sorry for the noise...
Title: Re: Online Package Manager
Post by: wp on February 09, 2023, 11:11:23 pm
GetMem, could you please update the TvPlanIt package to v1.8.1? The new version is a bugfix release for TVpCalendar.

Downloadlink: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.8.1.zip/download
Title: Re: Online Package Manager
Post by: balazsszekely on February 10, 2023, 06:57:13 am
GetMem, could you please update the TvPlanIt package to v1.8.1? The new version is a bugfix release for TVpCalendar.

Downloadlink: https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.8.1.zip/download
Done. Thanks for the new version.
Title: Re: Online Package Manager
Post by: lainz on February 11, 2023, 04:27:28 pm
https://wiki.freepascal.org/LGenerics#About

Can this be added to OPM, seems well tested.
Title: Re: Online Package Manager
Post by: balazsszekely on February 11, 2023, 05:51:35 pm
https://wiki.freepascal.org/LGenerics#About

Can this be added to OPM, seems well tested.
Yes, but only Monday. I'm away in the weekend.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on February 28, 2023, 10:49:03 pm
Hey Y'all,

I've left this on the GitHub repo: Cannot compile current OPM version in latest trunk as of 2023/02/28 (https://github.com/bgrabitmap/bgrabitmap/issues/195).

I'm kinda CCing it here since I really don't know where it will be more noticeable to the author.

GitHub Issue:

Hey Y'all

I just updated my trunk install with fpcupdeluxe and I first needed to remove the BGRA Packages since one of them is erroring out:
Code: Text  [Select][+][-]
  1. Compile package BGRABitmapPack 11.5.3: Exit code 1, Errors: 20, Warnings: 19, Hints: 14
  2. Hint: Start of reading config file /home/gcarreno/FreePascal/fpc/bin/x86_64-linux/fpc.cfg
  3. Hint: End of reading config file /home/gcarreno/FreePascal/fpc/bin/x86_64-linux/fpc.cfg
  4. Verbose: Free Pascal Compiler version 3.3.1-12514-gee16fc7b96 [2023/02/27] for x86_64
  5. Verbose: Copyright (c) 1993-2023 by Florian Klaempfl and others
  6. Verbose: Target OS: Linux for x86-64
  7. Verbose: Compiling bgrabitmappack.pas
  8. Verbose: Compiling bgraanimatedgif.pas
  9. Verbose: Compiling bgraclasses.pas
  10. Verbose: Compiling bgragraphics.pas
  11. Verbose: Compiling bgrabitmap.pas
  12. Verbose: Compiling bgrabitmaptypes.pas
  13. Verbose: Compiling bgraunicode.pas
  14. generatedunicode.inc(406,1) Warning: Function result variable does not seem to be initialized
  15. bgraunicode.pas(1173,7) Warning: Case statement does not handle all possible cases
  16. bgraunicode.pas(971,7) Warning: Case statement does not handle all possible cases
  17. bgraunicode.pas(950,7) Warning: Case statement does not handle all possible cases
  18. bgraunicode.pas(908,7) Warning: Case statement does not handle all possible cases
  19. bgraunicode.pas(642,11) Warning: Case statement does not handle all possible cases
  20. bgraunicode.pas(676,13) Warning: Case statement does not handle all possible cases
  21. bgraunicode.pas(488,13) Warning: Case statement does not handle all possible cases
  22. bgraunicode.pas(389,9) Warning: Case statement does not handle all possible cases
  23. bgraunicode.pas(412,9) Warning: Case statement does not handle all possible cases
  24. bgraunicode.pas(451,9) Warning: Case statement does not handle all possible cases
  25. Verbose: Compiling bgramultifiletype.pas
  26. Verbose: Compiling bgrautf8.pas
  27. bgrautf8.pas(28,51) Warning: Symbol "TStringListUTF8" is deprecated: "Use TStringList instead"
  28. bgrautf8.pas(164,3) Warning: Symbol "LoadStringsFromFileUTF8" is deprecated: "Just use TStrings.LoadFromFile"
  29. bgrautf8.pas(169,3) Warning: Symbol "SaveStringsToFileUTF8" is deprecated: "Just use TStrings.SaveToFile"
  30. bgrautf8.pas(245,13) Warning: Symbol "UTF8CharacterLength" is deprecated: "Use UTF8CodepointSize instead."
  31. bgrautf8.pas(153,40) Hint: Value parameter "AValue" is assigned but never used
  32. Verbose: Compiling bgrabitmaptypes.pas
  33. geometrytypes.inc(1030,27) Error: Incompatible types: got "TPointF" expected "Single"
  34. geometrytypes.inc(1110,14) Error: Operator is not overloaded: "<record type>" < "ShortInt"
  35. geometrytypes.inc(1117,28) Error: Incompatible types: got "TPointF" expected "Single"
  36. geometrytypes.inc(1118,31) Error: Incompatible types: got "TPointF" expected "Single"
  37. geometrytypes.inc(1119,28) Error: Incompatible types: got "TPointF" expected "Single"
  38. geometrytypes.inc(1120,29) Error: Incompatible types: got "TPointF" expected "Single"
  39. geometrytypes.inc(1512,23) Error: Incompatible type for arg no. 1: Got "TPointF", expected "Extended"
  40. mathh.inc(125,14) Hint: Found declaration: Sqrt(Extended):System.Extended; InternProc;
  41. geometrytypes.inc(1564,20) Error: Incompatible types: got "TPointF" expected "Single"
  42. geometrytypes.inc(1566,39) Error: Incompatible types: got "TPointF" expected "Single"
  43. geometrytypes.inc(1655,34) Error: Incompatible types: got "TPointF" expected "Single"
  44. geometrytypes.inc(1656,34) Error: Incompatible types: got "TPointF" expected "Single"
  45. bezier.inc(255,21) Warning: Function result variable of a managed type does not seem to be initialized
  46. bezier.inc(495,21) Warning: Function result variable of a managed type does not seem to be initialized
  47. bezier.inc(524,34) Error: Incompatible types: got "TPointF" expected "Single"
  48. bezier.inc(530,24) Error: Incompatible types: got "TPointF" expected "Single"
  49. bezier.inc(565,10) Error: Incompatible types: got "TPointF" expected "Single"
  50. bezier.inc(566,10) Error: Incompatible types: got "TPointF" expected "Single"
  51. bezier.inc(572,11) Error: Incompatible types: got "TPointF" expected "Single"
  52. bezier.inc(786,66) Error: Incompatible type for arg no. 1: Got "TPointF", expected "Extended"
  53. mathh.inc(123,14) Hint: Found declaration: Abs(Extended):System.Extended; InternProc;
  54. systemh.inc(986,10) Hint: Found declaration: Abs(Int64):System.Int64; InternProc;
  55. systemh.inc(980,10) Hint: Found declaration: Abs(LongInt):System.LongInt; InternProc;
  56. bezier.inc(835,20) Hint: Local variable "parts" of a managed type does not seem to be initialized
  57. bezier.inc(933,19) Warning: Function result variable of a managed type does not seem to be initialized
  58. bezier.inc(1454,17) Error: Incompatible type for arg no. 1: Got "TPointF", expected "Extended"
  59. mathh.inc(125,14) Hint: Found declaration: Sqrt(Extended):System.Extended; InternProc;
  60. bezier.inc(1457,17) Error: Incompatible type for arg no. 1: Got "TPointF", expected "Extended"
  61. mathh.inc(125,14) Hint: Found declaration: Sqrt(Extended):System.Extended; InternProc;
  62. bezier.inc(1460,17) Error: Operator is not overloaded: "<record type>" > "Single"
  63. unibitmap.inc(1182,18) Hint: Local variable "pts" of a managed type does not seem to be initialized
  64. basiccolorspace.inc(840,19) Warning: Function result variable of a managed type does not seem to be initialized
  65. bgrabitmaptypes.pas(664,19) Hint: Function result variable of a managed type does not seem to be initialized
  66. bgrabitmaptypes.pas(1149,26) Hint: Local variable "magicAsText" of a managed type does not seem to be initialized
  67. bgrabitmaptypes.pas(1236,26) Hint: Local variable "moreMagic" of a managed type does not seem to be initialized
  68. bgrabitmaptypes.pas(1554,0) Verbose: There were 20 errors compiling module, stopping
  69. Verbose: Compilation aborted
  70. Verbose: /home/gcarreno/FreePascal/fpc/bin/x86_64-linux/ppcx64 returned an error exitcode

Hope the log helps!!

Cheers,
Gus

Title: Re: Online Package Manager
Post by: balazsszekely on March 01, 2023, 06:43:33 am
Hi Gus,

Quote
I've left this on the GitHub repo: Cannot compile current OPM version in latest trunk as of 2023/02/28.

I'm kinda CCing it here since I really don't know where it will be more noticeable to the author.
Fpcupdeluxe builds the packages from sources(see attached image), OPM is not involved. I can update BGRABitmap in OPM, but it won't help you updating trunk/main with fpcupdeluxe.
Lazarus/FPC main is a fast changing, unstable environment, if it's possible I would avoid it. I know it's useful in some cases, like testing out new features, but usually a stable version it's a better choice.

Title: Re: Online Package Manager
Post by: lainz on March 01, 2023, 02:39:32 pm
Hi GetMem, these bugs with trunk already have been discussed several times...

To solve it, maybe you can update bgrabitmap and bgracontrols with dev branch

https://github.com/bgrabitmap/bgrabitmap/tree/dev-bgrabitmap
https://github.com/bgrabitmap/bgracontrols/tree/dev-bgracontrols

Until we do a new release, so the version number will be the same (people with it installed will not notice) but new users will have the fixed version for trunk.

Edit: Is tested as well with current release of Lazarus and FPC, so don't worry for that, but if you want test it anyways.
Title: Re: Online Package Manager
Post by: balazsszekely on March 01, 2023, 05:30:23 pm
Hi lainz,

OK. I updated both BGRABitmap and BGRAControls. Please test.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on March 02, 2023, 12:09:37 pm
Hey GetMem,

Fpcupdeluxe builds the packages from sources(see attached image), OPM is not involved. I can update BGRABitmap in OPM, but it won't help you updating trunk/main with fpcupdeluxe.
Lazarus/FPC main is a fast changing, unstable environment, if it's possible I would avoid it. I know it's useful in some cases, like testing out new features, but usually a stable version it's a better choice.

I'm sorry for dragging you into this, that was not my intention at all!!

My intention was to make the authors of the package aware of an issue with Lazarus main/HEAD(what we call trunk).

I thought that by mentioning that I was Carbon Copying the issue here and in GitHub, you would understand that it was not an OPM issue, but a desperate cry for help to the authors of the package!!

Looks like I failed and for that I must deeply apologise!! Sooooo, I'm really sorry for the misunderstanding!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: BSaidus on March 13, 2023, 09:27:31 pm
Hello,
thank you this expert and for all your your efforts.
I think it would be good thing to add and display the sizes of packages for people whom want to download all packages but not the big ones.
thanks.
Title: Re: Online Package Manager
Post by: dsiders on March 13, 2023, 09:31:52 pm
Hello,
thank you this expert and for all your your efforts.
I think it would be good thing to add and display the sizes of packages for people whom want to download all packages but not the big ones.
thanks.

Every package has "Repository File Size" metadata.
Title: Re: Online Package Manager
Post by: BSaidus on March 14, 2023, 04:05:15 pm
Hello,
thank you this expert and for all your your efforts.
I think it would be good thing to add and display the sizes of packages for people whom want to download all packages but not the big ones.
thanks.

Every package has "Repository File Size" metadata.

Yes, But It would be better to display it in the list, so when someone trying to download all packages, he will have the ability to skip the big ones.
  For exemple, Me, I do not have a stable internet connection, doing do, It will help me to download only small packages .
Title: Re: Online Package Manager
Post by: balazsszekely on March 15, 2023, 07:46:44 am
@BSaidus
Quote
Yes, But It would be better to display it in the list, so when someone trying to download all packages, he will have the ability to skip the big ones.
  For exemple, Me, I do not have a stable internet connection, doing do, It will help me to download only small packages .
Display where? There is no more room for another column. OPM already looks like a Christmas tree.  :)
Title: Re: Online Package Manager
Post by: af0815 on March 15, 2023, 02:15:19 pm
What is the Problem, i see actual the size in OPM. Or is the Repository filesize not the wanted one ?
Title: Re: Online Package Manager
Post by: balazsszekely on March 15, 2023, 02:21:53 pm
@af0815
Quote
What is the Problem, i see actual the size in OPM. Or is the Repository filesize not the wanted one ?
Yes, but in order to see it, you have to expand the node. I believe @BSaidus wants to see the file size, in a place where is more visible, like a separate column or something similar.
Title: Re: Online Package Manager
Post by: af0815 on March 15, 2023, 02:33:27 pm
@af0815
Quote
What is the Problem, i see actual the size in OPM. Or is the Repository filesize not the wanted one ?
Yes, but in order to see it, you have to expand the node. I believe @BSaidus wants to see the file size, in a place where is more visible, like a separate column or something similar.
If i want a package, i search first for the wanted functionallyty and then i can decide if the packages need my internet budget. And realy, how oft will this be done ? The information is visible, but not on the first level, ok. The next is to have a calculator for all selected packages, because build a sum about the wanted packages is the next, because write down the values and calculate the size is nobody done - so step by step it will grow.

Your decision, OPM is full is good and IMHO correct (more will not be good). And all the Information is in the JSON, so everybody can write a tool to do it by himself to calculate the data.
Title: Re: Online Package Manager
Post by: BSaidus on March 16, 2023, 10:05:36 am
@af0815
Quote
What is the Problem, i see actual the size in OPM. Or is the Repository filesize not the wanted one ?
Yes, but in order to see it, you have to expand the node. I believe @BSaidus wants to see the file size, in a place where is more visible, like a separate column or something similar.
If i want a package, i search first for the wanted functionallyty and then i can decide if the packages need my internet budget. And realy, how oft will this be done ? The information is visible, but not on the first level, ok. The next is to have a calculator for all selected packages, because build a sum about the wanted packages is the next, because write down the values and calculate the size is nobody done - so step by step it will grow.

Your decision, OPM is full is good and IMHO correct (more will not be good). And all the Information is in the JSON, so everybody can write a tool to do it by himself to calculate the data.

OK, As you like.

Title: Re: Online Package Manager
Post by: Guva on March 21, 2023, 06:16:43 pm
Hi GetMem. Please update to Ray4Laz.
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.5.zip (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.5.zip)
Json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json (https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json)

thank you in advance  ;)

Title: Re: Online Package Manager
Post by: balazsszekely on March 21, 2023, 06:27:17 pm
Hi GetMem. Please update to Ray4Laz.
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.5.zip (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/4.5.zip)
Json : https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json (https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json)                 

thank you in advance  ;)
Done. Thanks for the new version!
Title: Re: Online Package Manager
Post by: Jurassic Pork on March 27, 2023, 07:07:31 am
Hello Getmem,
i try to use the lnet  package project example visual/tcpudp/testnet with lazarus 2.2.4  64 bits on Windows 11 but when i try to load the project i have a big crash ( properties in the lfm doesn't match with one of the visual component). I have uninstalled the lnet package from onlinepackager and i have try to load the last source files from the lnet almindor github site. When i try to install the lnetvisual package i have this strange error :
Quote
opensslsockets.pp(81,12) Fatal: Can't find unit opensslsockets used by opkman_downloader
Friendly, J.P
Title: Re: Online Package Manager
Post by: balazsszekely on March 27, 2023, 07:21:32 am
Hi Jurassic Pork,

I think this is related to:
https://forum.lazarus.freepascal.org/index.php/topic,61688.msg464839.html#msg464839
Quote
Lnet provides its own version of openssl, which is just a copy of some old synapse unit. Since FPC also has a version of synapse and implicitly openssl.pas, the system(LazarusIDE) got confused.
The solution is to delete the openssl units shipped with lnet, it's already in FPC.
Title: Re: Online Package Manager
Post by: Jurassic Pork on March 27, 2023, 07:32:48 am
Ok, thanks GetMem, when i remove the openssl.pas from lnet files now i can install the lnetvisual package but i have always the big crash when i load the testnet project. I think that someThing is wrong in this project example.
Title: Re: Online Package Manager
Post by: balazsszekely on March 27, 2023, 07:40:11 am
Ok, thanks GetMem, when i remove the openssl.pas from lnet files now i can install the lnetvisual package but i have always the big crash when i load the testnet project. I think that someThing is wrong in this project example.
You're more then welcome! Unfortunately I know nothing about lnet, perhaps you should contact the package developer?
Title: Re: Online Package Manager
Post by: Jurassic Pork on March 27, 2023, 07:59:12 am
 ::) I have found how to do  so that the project testnet works :
1 - in the main.lfm replace the line
Quote
Method = msSslTLS
with this :
Quote
Method = msTLS
and in the file main.pas comments these lines :
Code: Pascal  [Select][+][-]
  1.     if FNet.SocketNet = LAF_INET6 then
  2.       raise Exception.create('Unable to broadcast with UDPv6');    
-->
Code: Pascal  [Select][+][-]
  1. //    if FNet.SocketNet = LAF_INET6 then
  2. //      raise Exception.create('Unable to broadcast with UDPv6');    

may be there is another solution.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on May 21, 2023, 06:05:08 pm
Hey GetMem,

For the past 3 days I've been pulling my hairs out because I thought the space in the VirstualTreeView V5 's PackageBaseDir JSON field was messing with the setup-lazarus operation under the GitHub action runners.

I did a bunch of attempts at escaping the space and was always frustrated by the resulting error: File not found.

Finally I decided to ls -alf <unziped folder> and as you can see in the image, there is no VirtualTreeView V5 folder, just the content of the zip in the unzipped folder.

Can I ask you to either blank the PackageBaseDir on the JSON, or redo the zip file so that it includes the VirtualTreeView V5 folder that then contains the code?

Many thanks in advance!!

Cheers,
Gus

P.S.: I haven't quitted on the new site for the OPM packages. Like I said many times in my disclaimer, my mental health has been messing with me and I'm kinda just now resuming coding :)
I have some backlog, so I can't really offer a date to resume, sorry!!
Title: Re: Online Package Manager
Post by: balazsszekely on May 21, 2023, 10:14:45 pm
@Gustavo 'Gus' Carreno
Quote
Can I ask you to either blank the PackageBaseDir on the JSON, or redo the zip file so that it includes the VirtualTreeView V5 folder that then contains the code?
Done. Please try again.

Quote
P.S.: I haven't quitted on the new site for the OPM packages. Like I said many times in my disclaimer, my mental health has been messing with me and I'm kinda just now resuming coding :) I have some backlog, so I can't really offer a date to resume, sorry!!
No problem.
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on May 23, 2023, 03:45:36 am
Hey GetMem,

@Gustavo 'Gus' Carreno
Quote
Can I ask you to either blank the PackageBaseDir on the JSON, or redo the zip file so that it includes the VirtualTreeView V5 folder that then contains the code?
Done. Please try again.

Just out of curiosity, which above mentioned action did you perform?

Quote
P.S.: I haven't quitted on the new site for the OPM packages. Like I said many times in my disclaimer, my mental health has been messing with me and I'm kinda just now resuming coding :) I have some backlog, so I can't really offer a date to resume, sorry!!
No problem.

Thanks for the understanding, really appreciate it!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: circular on May 27, 2023, 08:43:06 am
Hi folks.

There is a new version of BGRABitmap (11.5.4) and a new version BGRAControls (7.7) that depends on it. This is necessary have this dependency due to new definition of operator ** for scalar product of vectors.

Have a nice day  :)
Title: Re: Online Package Manager
Post by: balazsszekely on May 28, 2023, 03:54:17 pm
Hi circular,

I updated both BGRABitmap and BGRAControls in OPM. Thanks for the new version.
Title: Re: Online Package Manager
Post by: d.ioannidis on June 05, 2023, 12:16:19 pm
Hi,

  hidapi new version v0.4.1 ( https://github.com/dioannidis/HIDAPI.pas ) .
 
   Fix HidApiLibraryHandle from THandle to TLibHandle, reformat target OS IFDEF and add FresBSD .

  You can always download the release zip from from https://github.com/dioannidis/HIDAPI.pas/releases/tag/v0.4.1 page.

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on June 06, 2023, 10:34:41 am
Hi,

  hidapi new version v0.4.1 ( https://github.com/dioannidis/HIDAPI.pas ) .
 
   Fix HidApiLibraryHandle from THandle to TLibHandle, reformat target OS IFDEF and add FresBSD .

  You can always download the release zip from from https://github.com/dioannidis/HIDAPI.pas/releases/tag/v0.4.1 page.

regards,
I updated the package, thanks for the new version.
Title: Re: Online Package Manager
Post by: wp on June 15, 2023, 12:35:28 pm
GetMem, could you place update the TvPlanIt packages? The version is at v1.8.2 now (bug fix release due to the recent changes in Laz/main).

The zip file is at https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/tvplanit-1.8.2.zip/download
The update json is at https://sourceforge.net/projects/lazarus-ccr/files/tvplanit/OPM/update_tvplanit.json/download
Title: Re: Online Package Manager
Post by: balazsszekely on June 15, 2023, 12:57:49 pm
@wp
Done. Thank you!
Title: Re: Online Package Manager
Post by: wp on June 15, 2023, 02:02:47 pm
You're welcome.
Title: Re: Online Package Manager
Post by: Jurassic Pork on June 18, 2023, 09:36:00 am
Hello,
Actually, i can't install bgracontrols from OPM : download stops with the error message :
Error Reading Data from socket ( see attachment). (between 6M et 9M)
Lazarus 2.2.6  64 bits Windows 11

[EDIT] Works with a VPN ( australian server)

Friendly, J.P
Title: Re: Online Package Manager
Post by: wp on June 24, 2023, 04:31:34 pm
GetMem, could you please add the "NiceGrid" package to OPM? It contains a "stringgrid" variant written by someone called Priyatna whose web site is no longer available. See also the discussion in https://forum.lazarus.freepascal.org/index.php/topic,63731.msg483242.html.

I am hosting the development version which is available for both Lazarus and Delphi on CCR: https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/nicegrid/

A zip file, ready for OPM, is available at https://sourceforge.net/projects/lazarus-ccr/files/NiceGrid/nicegrid-v300.zip/download

Since the original author's site is no longer available I'd propose to refer to our wiki for the home page of the package: https://wiki.freepascal.org/NiceGrid
Title: Re: Online Package Manager
Post by: balazsszekely on June 24, 2023, 07:28:04 pm
GetMem, could you please add the "NiceGrid" package to OPM? It contains a "stringgrid" variant written by someone called Priyatna whose web site is no longer available. See also the discussion in https://forum.lazarus.freepascal.org/index.php/topic,63731.msg483242.html.

I am hosting the development version which is available for both Lazarus and Delphi on CCR: https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/nicegrid/

A zip file, ready for OPM, is available at https://sourceforge.net/projects/lazarus-ccr/files/NiceGrid/nicegrid-v300.zip/download

Since the original author's site is no longer available I'd propose to refer to our wiki for the home page of the package: https://wiki.freepascal.org/NiceGrid
Done. Thanks!
Title: Re: Online Package Manager
Post by: wp on June 24, 2023, 08:43:24 pm
Thanks. But sorry: Could you upload the file again? I had to change it because there was still a bug in the Delphi version (quite to mess to maintain a package for Lazarus and Delphi).
Title: Re: Online Package Manager
Post by: balazsszekely on June 25, 2023, 07:43:27 am
Thanks. But sorry: Could you upload the file again? I had to change it because there was still a bug in the Delphi version (quite to mess to maintain a package for Lazarus and Delphi).
No problem. I updated the package again.
Title: Re: Online Package Manager
Post by: lainz on June 25, 2023, 04:55:43 pm
Hi GetMem, can you update BGRABitmap to dev-branch? It has updates to work in "lazarus trunk"
Title: Re: Online Package Manager
Post by: balazsszekely on June 25, 2023, 05:59:34 pm
Hi GetMem, can you update BGRABitmap to dev-branch? It has updates to work in "lazarus trunk"
Done! Thanks.
Title: Re: Online Package Manager
Post by: wp on June 25, 2023, 06:17:08 pm
Thanks. But sorry: Could you upload the file again? I had to change it because there was still a bug in the Delphi version (quite to mess to maintain a package for Lazarus and Delphi).
No problem. I updated the package again.
Thank you.
Title: Re: Online Package Manager
Post by: wp on July 25, 2023, 10:45:44 am
Hello GetMem, I am providing a new version of NiceGrid which avoids the crashes in non-windows widgetsets. Editing the grid still is a bit too intricate compared to the Delphi version, but it's better than before: https://sourceforge.net/projects/lazarus-ccr/files/NiceGrid/nicegrid-v301.zip/download

And I am attaching two more components originally written by Priyatna for Delphi:
Title: Re: Online Package Manager
Post by: balazsszekely on July 26, 2023, 06:15:48 am
Hello GetMem, I am providing a new version of NiceGrid which avoids the crashes in non-windows widgetsets. Editing the grid still is a bit too intricate compared to the Delphi version, but it's better than before: https://sourceforge.net/projects/lazarus-ccr/files/NiceGrid/nicegrid-v301.zip/download

And I am attaching two more components originally written by Priyatna for Delphi:
  • NiceChart: a simple charting component, https://sourceforge.net/projects/lazarus-ccr/files/NiceChart/nicechart-v200.zip/download, wiki documentation at https://wiki.freepascal.org/NiceChart; development repository: https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/nicechart/
  • NideSidebar: a vertical menu-like component, https://sourceforge.net/projects/lazarus-ccr/files/NiceSidebar/nicesidebar-v200.zip/download, wiki documentation at https://wiki.freepascal.org/NiceSideBar; development repository: https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/nicesidebar/
Done. Thank you!
Title: Re: Online Package Manager
Post by: bobby100 on September 03, 2023, 12:26:40 am
Hallo GetMem,

I have updated TIPEdit: https://gitlab.com/bobby100/tiplabel
Title: Re: Online Package Manager
Post by: balazsszekely on September 04, 2023, 06:20:11 am
Hallo GetMem,

I have updated TIPEdit: https://gitlab.com/bobby100/tiplabel
I updated TIPEdit. Thank you!
Title: Re: Online Package Manager
Post by: Beazy on October 03, 2023, 11:22:22 pm
Nice work!


___
design agency Webcapitan (https://webcapitan.com/services/design/)
Title: Re: Online Package Manager
Post by: wp on October 08, 2023, 12:18:25 am
GetMem, could you please update FPSpreadsheet? There is a new release version 1.16 at https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.16.zip/download.
Title: Re: Online Package Manager
Post by: balazsszekely on October 08, 2023, 03:59:54 pm
GetMem, could you please update FPSpreadsheet? There is a new release version 1.16 at https://sourceforge.net/projects/lazarus-ccr/files/FPSpreadsheet/fpspreadsheet-1.16.zip/download.
Done. Thank you!
Title: Re: Online Package Manager
Post by: wp on October 08, 2023, 05:19:24 pm
Thanks
Title: Re: Online Package Manager
Post by: d.ioannidis on October 14, 2023, 02:59:50 pm
Hi,

  hidapi new version v0.5.0 ( https://github.com/dioannidis/HIDAPI.pas ) .

  Changes in this release :
  Breaking changes :

  You can always download the release zip from from https://github.com/dioannidis/HIDAPI.pas/releases/tag/v0.5.0 page.

regards,
Title: Re: Online Package Manager
Post by: balazsszekely on October 15, 2023, 07:41:58 pm
Hi,

  hidapi new version v0.5.0 ( https://github.com/dioannidis/HIDAPI.pas ) .

  Changes in this release :
  • Add hidapi's ( 0.13.0 ) HID underlying bus types enumeration.
  • Add hidapi's ( 0.13.0 ) hid_get_device_info
   
  • Add hidapi's ( 0.14.0 ) hid_get_report_descriptor
  • Minor fixes.
  Breaking changes :
  • HidApiVersion which returns version string renamed correctly to HidApiVersionStr . The HidApiVersion now returns a THidApiVersion record that contains version (maj,min,patch).

  You can always download the release zip from from https://github.com/dioannidis/HIDAPI.pas/releases/tag/v0.5.0 page.

regards,
I updated hidapi. Thanks for the new version.
Title: Re: Online Package Manager
Post by: circular on October 23, 2023, 02:51:19 pm
Hi Getmem,

Please update BGRABitmap to last version (11.5.6).

Regards
Title: Re: Online Package Manager
Post by: balazsszekely on October 23, 2023, 05:55:05 pm
Hi Getmem,

Please update BGRABitmap to last version (11.5.6).

Regards
I updated BGRABitmap to 11.5.6. Thanks for the new version.

Title: Re: Online Package Manager
Post by: Guva on November 18, 2023, 02:59:13 pm
Hi GetMem. Please update to Ray4Laz.
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0.zip (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0.zip)
json https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json
Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2023, 05:24:12 pm
Hi GetMem. Please update to Ray4Laz.
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0.zip (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0.zip)
json https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json
Done. Thanks for the new version!
Title: Re: Online Package Manager
Post by: Guva on November 18, 2023, 06:35:15 pm
Hi GetMem. Please update to Ray4Laz.
Since I released the new version !!!

https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0.zip (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0.zip)
json https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json
Done. Thanks for the new version!
Oh. it looks like gitignore has cut the files of compiled libraries. fixed it. please re-upload
Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2023, 06:38:19 pm
@guva
I downloaded the new zip, compared with the one uploaded to OPM a few hours ago, they are exactly the same.
Title: Re: Online Package Manager
Post by: Guva on November 18, 2023, 06:48:33 pm
@guva
I downloaded the new zip, compared with the one uploaded to OPM a few hours ago, they are exactly the same.
files *.a absence in the old archive
Title: Re: Online Package Manager
Post by: balazsszekely on November 18, 2023, 07:15:35 pm
@guva
I downloaded the new zip, compared with the one uploaded to OPM a few hours ago, they are exactly the same.
files *.a absence in the old archive
Please try again. I updated Ray4Laz in OPM.
Title: Re: Online Package Manager
Post by: Guva on November 18, 2023, 07:24:25 pm
Quote
Please try again. I updated Ray4Laz in OPM.
Checked. It's fine. Thank you.
Title: Re: Online Package Manager
Post by: lainz on November 29, 2023, 10:34:18 pm
Hi GetMem, how is the mem getting?  ::)

There is a new version of BGRABitmap
https://forum.lazarus.freepascal.org/index.php/topic,24239.msg497907.html#msg497907

And a new version of BGRAControls
https://forum.lazarus.freepascal.org/index.php/topic,24176.msg498164.html#msg498164

Can you please update this old guys into the OPM-Verse?

 :)
Title: Re: Online Package Manager
Post by: lainz on December 02, 2023, 09:54:19 am
Hi, seems that GetMem is not part of this forum anymore  :'(
Title: Re: Online Package Manager
Post by: AlexTP on December 02, 2023, 04:10:56 pm
According to
https://forum.lazarus.freepascal.org/index.php/topic,65415.msg498398.html#msg498398
KASComp in OPM is too old.
Let's update it from DoubleCommander sources.

EDIT:
or do not. DC's version of KASComp needs more dependencies.
https://forum.lazarus.freepascal.org/index.php/topic,65415.msg498420.html#msg498420
Title: Re: Online Package Manager
Post by: lainz on December 02, 2023, 04:31:55 pm
According to
https://forum.lazarus.freepascal.org/index.php/topic,65415.msg498398.html#msg498398
KASComp in OPM is too old.
Let's update it from DoubleCommander sources.

EDIT:
or do not. DC's version of KASComp needs more dependencies.
https://forum.lazarus.freepascal.org/index.php/topic,65415.msg498420.html#msg498420

The thing is who is in charge now, that GetMem is not part of this forum anymore...
Title: Re: Online Package Manager
Post by: Remy Lebeau on December 03, 2023, 04:00:20 am
Hi, seems that GetMem is not part of this forum anymore  :'(

Wait, what?!?! Then, who's managing updates to OPM now?

<looks back in the thread history>

Someone named "balazsszekely", it seems. Who's that? They have no profile.

<looks back further>

Wait a minute... past posts that I know were made by GetMem have been renamed to balazsszekely... Are they the same user? Or was the user account swapped? Or is it a glitch in the Matrix?

---

Should we keep posting in this thread for updates to OPM packages?

Indy probably needs a refresh...
Title: Re: Online Package Manager
Post by: lainz on December 03, 2023, 09:54:36 am
Hi, seems that GetMem is not part of this forum anymore  :'(

Wait, what?!?! Then, who's managing updates to OPM now?

No one.

Quote
<looks back in the thread history>

Someone named "balazsszekely", it seems. Who's that? They have no profile.

That's GetMem real username, when he or someone else deleted his account, is now a guest and is displaying his real username.

Edit: for example my user name is 007 but I display it as lainz...

Quote
<looks back further>

Wait a minute... past posts that I know were made by GetMem have been renamed to balazsszekely... Are they the same user? Or was the user account swapped? Or is it a glitch in the Matrix?

Already explained.

Quote
---

Should we keep posting in this thread for updates to OPM packages?

Indy probably needs a refresh...

I think yes, is the right thread, maybe it just need to be reassigned to someone else or wait for any confirmation about GetMem new status, say if he is still alive o not, or if he is tired about Lazarus, or he is now retired, or is his account hacked, who knows...
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on December 04, 2023, 11:49:39 am
Hey Y'All,

I'm just hoping, really hard, that it has nothing to do with health issues or even the worst of it all!!!

In any case, I wish GetMem all the best on whatever endeavour he's on now!!

Cheers,
Gus
Title: Re: Online Package Manager
Post by: wp on December 04, 2023, 11:57:03 am
GetMem cancelled his forum account for reasons that I don't know. He told me, however, that he will continue to update packages for OPM outside the forum. Update requests should be directed by mail to him at opm@lazarus-ide.org .
Title: Re: Online Package Manager
Post by: El Salvador on December 04, 2023, 01:03:40 pm
Isn't it time to bring update requests to an issue tracker (lazarus tracker with proper label?), so we can track them better?
Title: Re: Online Package Manager
Post by: 440bx on December 04, 2023, 01:27:30 pm
GetMem cancelled his forum account for reasons that I don't know. He told me, however, that he will continue to update packages for OPM outside the forum. Update requests should be directed by mail to him at opm@lazarus-ide.org .
@wp, Thank you for that update.  It's good to know that, at least, he is alive.

I can't help but wonder if he cancelled his account because of something that took (or takes) place in the forum or for some other totally forum unrelated reason.   If it's forum related then it might require attention.
Title: Re: Online Package Manager
Post by: Thaddy on December 04, 2023, 02:04:34 pm
  If it's forum related then it might require attention.
Indeed. But such a prime product may be integrated in the FreePascal or Lazarus repositories.
Maybe he will change his mind. Get back GetMem!
Title: Re: Online Package Manager
Post by: d7_2_laz on December 04, 2023, 02:38:55 pm
Like others, I was very scared and worried at first, but I'm happy now that he's at least doing well!

I'd be glad too if he could come back here!
Title: Re: Online Package Manager
Post by: Remy Lebeau on December 04, 2023, 07:51:00 pm
Isn't it time to bring update requests to an issue tracker (lazarus tracker with proper label?), so we can track them better?

Isn't it time to just let/require package authors to manage their own submissions?
Title: Re: Online Package Manager
Post by: wp on December 04, 2023, 07:57:56 pm
Yes, but "somebody" must write the infrastructure...
Title: Re: Online Package Manager
Post by: Gustavo 'Gus' Carreno on December 05, 2023, 02:32:57 pm
Hey WP,

Yes, but "somebody" must write the infrastructure...

I was actually starting a website that would mimic the doings of such package managers as the PHP and Python ones.
Especially the integration with GitHub in order to have the packages up to date with the latest release from there( shifting the download to GitHub and not the management site ) and, of course, the programmer would have an account to add/edit and remove packages.

Due to my mental health issues and my attention to some other shinny, that project is now a bit in limbo.
I even had a full roadmap to ease the transition from what we have now into this new paradigm.
I started it with CakePHP.

If anyone is willing to resume this, I'll be more than happy to pass on all the stuff I had going.

Cheers,
Gus

P.S.: UFFFFF, thanks for putting our collective minds at ease with the news that GetMem is OK!!!
Title: Re: Online Package Manager
Post by: paweld on December 05, 2023, 04:07:24 pm
A few years ago I wrote a piece of script in php that automatically (when added to cron) updated packages - they must be assigned a update.json file with a link to the zip file. In addition, it allowed to collect ratings and comments on packages: https://github.com/paweld/OPM2a-api
Title: Re: Online Package Manager
Post by: circular on December 08, 2023, 12:09:49 pm
Hi dear OPM,

There is a new version of BGRABitmap as a quick fix for the previous release: https://github.com/bgrabitmap/bgrabitmap/releases/tag/v11.5.8

 :)
Title: Re: Online Package Manager
Post by: lainz on December 08, 2023, 04:49:48 pm
Hi dear OPM,

There is a new version of BGRABitmap as a quick fix for the previous release: https://github.com/bgrabitmap/bgrabitmap/releases/tag/v11.5.8

 :)

Hi circular, I've sent the mail to GetMem, now we need to send a mail instead of commenting on this thread.

GetMem cancelled his forum account for reasons that I don't know. He told me, however, that he will continue to update packages for OPM outside the forum. Update requests should be directed by mail to him at opm@lazarus-ide.org .
Title: Re: Online Package Manager
Post by: WayneSherman on December 09, 2023, 08:54:52 pm
Yes, but "somebody" must write the infrastructure...

How about handling OPM updates in a Gitlab subproject with issues and optionally merge requests?
Some kind of supply chain accounting would be desired and something that is not difficult to review / audit.
Title: Re: Online Package Manager
Post by: wp on December 10, 2023, 12:00:31 am
I think that's not the intention behind OPM. Every package distributed by OPM should have a maintainer, and its his responsibility to keep his contribution alive. You find in each OPM package description information where the original package is hosted and who is the maintainer. Then, when you want to submit a patch/pull request send it to this site, and he will fix the issue and take care of getting the new version into OPM.

Sometimes, however, people submit their work to OPM to see it published there - and then disappear. Or some - well: many - packages are from old Delphi times and have been ported to Lazarus; but the original author is no longer available, and nobody takes care of these packages. Please understand that we cannot take responsibility for them. If you find a bug and get no response from the formal package maintainer prepare a patch and send it with some explanation to opm@lazarus-ide.org. So far, GetMem has always applied the patch and put the new version into the OPM repository, but I think, in the long term, this will be the exception rather than the rule. It has been discussed to remove unmaintained packages from OPM altogether, but without a decision, yet.
Title: Re: Online Package Manager
Post by: dbannon on December 10, 2023, 12:43:21 am
Wow, I find this disturbing. Getmem is/was one of a small handful of people here who is both very knowledgeable AND a good communicator. He helped me in the early, and not so early, stages and always helped without being patronizing or going into lecture mode. I will, personally miss Getmem.

With respect to WP's comments about OPM legacy packages, I don't think it helps anyone to have non working or undocumented packages in the front line of OPM. Especially so if Getmem's is going to be more hands off. I wonder if it would be a good idea to mark such packages as "legacy" or "unmaintained" or, even, "In need of sponsor" ?

Davo

Title: Re: Online Package Manager
Post by: Guva on December 20, 2023, 04:05:35 pm
Hi GetMem. Please update to Ray4Laz.
Bug fix.
https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0b.zip (https://github.com/GuvaCode/Ray4Laz/archive/refs/tags/5.0b.zip)
json https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json (https://raw.githubusercontent.com/GuvaCode/GuvaCode/main/update_Ray4Laz.json)
Title: Re: Online Package Manager
Post by: Remy Lebeau on December 20, 2023, 06:20:06 pm
Hi GetMem. Please update to Ray4Laz.

Hi Guva, I guess you missed this post (https://forum.lazarus.freepascal.org/index.php/topic,34297.msg498600.html#msg498600) from a couple of weeks ago:

GetMem cancelled his forum account for reasons that I don't know. He told me, however, that he will continue to update packages for OPM outside the forum. Update requests should be directed by mail to him at opm@lazarus-ide.org .
Title: Re: Online Package Manager
Post by: dsiders on December 21, 2023, 12:13:01 am
Hi GetMem. Please update to Ray4Laz.

Hi Guva, I guess you missed this post (https://forum.lazarus.freepascal.org/index.php/topic,34297.msg498600.html#msg498600) from a couple of weeks ago:

GetMem cancelled his forum account for reasons that I don't know. He told me, however, that he will continue to update packages for OPM outside the forum. Update requests should be directed by mail to him at opm@lazarus-ide.org .

Perhaps a forum admin can add a sticky note to this thread with this information.
Title: Re: Online Package Manager
Post by: Guva on December 21, 2023, 08:52:49 am
thank you for the information. updated !!!!

Title: Re: Online Package Manager
Post by: avra on December 30, 2023, 06:07:22 pm
Open Weather Map from OPM could not compile for quite some time, and didn't get updates by original author for years. I fixed that. You can try new version in OPM.

As always, you need to register to get API key, wait for several hours so it get's activated, and set properties as shown in screenshot for API key, Query (your place), and Units (I understand metric).
Title: Re: Online Package Manager
Post by: funlw65 on January 10, 2024, 05:19:38 pm
Thank you Avra!
Title: Re: Online Package Manager
Post by: avra on January 12, 2024, 12:59:41 am
Thank you Avra!
You're most welcome, but all the hard work has been done by the original author  ;)
TinyPortal © 2005-2018