Recent

Author Topic: fpcup 3.1.1 Update  (Read 136568 times)

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4459
  • I like bugs.
Re: fpcup 3.1.1 Update
« Reply #15 on: April 10, 2015, 12:43:31 pm »
Code: [Select]
fpcup.exe --fpcURL="trunk" --only="FPCcleanonly,FPCgetonly,FPCbuildonly"

I used this one and it works well. Thanks!
I will try the other variations some other time.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #16 on: April 13, 2015, 04:43:48 pm »
Change in default settings of fpcup.

The setting "reapplylocalchanges" now defaults to true !!
This means that changes in the original source will be saved as a diff (as has always been the case).
And re-applied on the updated source after a SVN update of fpc / lazarus.

This allows for very easy propagation of source changes through normal fpc / lazarus updates.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: fpcup 3.1.1 Update
« Reply #17 on: April 19, 2015, 10:52:32 am »
I will try the other variations some other time.
You can try 2 attached variations (actually BAT files using configurations from INI):
TrunkLaz is Lazarus trunk + FPC stable version with fixes (currently 2.6.5)
TrunkAll is Lazarus trunk + FPC trunk
Both contain maximal number of packages I could make work.

Time is the limit now, but I do wonder what amount of work is required to add some favorite package to fpcup...
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #18 on: April 19, 2015, 01:45:19 pm »
What are your (main) favorites ?

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: fpcup 3.1.1 Update
« Reply #19 on: April 22, 2015, 02:23:36 pm »
What are your (main) favorites ?
This is what I have to reinstall with every fpcup combination I use:
Cindy, Indy, KControls, LuiPack, OpenWire, PascalSCADA, RichMemo, OmniXML, VirtualTreeView and Visual Synapse.
Believe it or not, they all exist in Typhon (some were added after my request) and besides embedded form designer and easy cross platform that's the only reason why that is my main Lazarus incarnation. Without looking into code first, I am not aware how hard would be to add these modules to fpcup. Ideally there would be a fpcup subdirectory where fpcup would look for recipes with modules, and we would be able to create such recipes as simple ASCII, JSON, XML or other similar files. Recipes would contain module source (lib/package directory, or git/svn url), with some additional instructions needed for fpcup, and could be easily shared with other interested users. If I catch time (huh)  :(, I would like to make some fpcup modules. Since this is not an ideal world, development is the only way.

Speaking of Typhon, there are many packages which are screaming for use with fpcup. I have looked through all of them, and here are the lists of what can already be found online (SVN/GIT), and what can be found only in Typhon download file:

Available online (SVN or GIT):
Abbrevia, Asphyre Sphinx, CmdLine, DataPort, Eye Candy Controls, fpCEF3, GeckoPort, Indy, jujiboutils, KControls, LazSolutions, LazWebSolutions, LockBox2, LuiPack, OnGuard, OmniXML, Orpheus, Pappe, PascalSCADA, PowerPDF, RichMemo, RichView, SpkToolbar, SplashAbout, VirtualTreeView, VisualPlanIt, Web Service Toolkit, ueControls, ZenGL, zmSQL

Typhon only (\typhon\components in typhon_src.7z, examples in CodeOcean.7z):
Astronomy, Barcodes, Box2D, Cindy, ColorLib, DWscript, ExDesign, ExSystem, ExText, FzControls, GaiaGIS, GeoGIS, Graphics32, JVCL, OpenWire, Orca, Shapes, VisualSynapse
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #20 on: April 22, 2015, 03:57:22 pm »
Wow ... you know what to ask for ... ! That is a BIG list !!!

Few things to remember:
1) fpcup is primarily made for easy install of FPC and Lazarus.
2) fpcup will not implement functionality that is already available is some way or another.

Having said this, I will explain my preferences (but by no means ment as limitations).

Fpcup is command line. A single executable with 2 setup files. Package selection has to be done according to the currrent method. This means packages have to be available for direct use by FPC and/or Lazarus. No changes to source. So install from SVN or GIT. With an optional patch (directory) for the source if needed. These patches could eventually be used by the package developers (or even be made available by them e.g. in case of changes to FPC / Lazarus trunk).

By no means fpcup will be able to deliver something like CodeTyphon, with its very extensive package list. As (original developer) late BigChimp stated: fpcup is something like an extensive macro for installing FPC and Lazarus.

So lets get started !

I will have a go on your first list of packages. Start with Cindy. And further.
This is how I will proceed. But please feel free to add / change / cooperate. Input is always welcome and appreciated.

But please be hesitant on forking fpcup.
It would be good (better) to have only a single version, with a lot of build-in features, that will fulfill (nearly) all our needs.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: fpcup 3.1.1 Update
« Reply #21 on: April 23, 2015, 12:43:47 pm »
Wow ... you know what to ask for ... ! That is a BIG list !!!
I am really sorry if you understood this as a request. I guess my English has failed in delivering my thoughts this time. I would be more then happy if you get interested in even just 1 package from the list. I apologize for the confusion, and I must say that you were very kind considering how my words were understood. My goal is first small list, and I have gone through checking of Typhon components mainly because I think that there are people not awared of Typhon exclusive package ports from Delphi (hats off to CT for this enormous effort) and maybe getting interested in making fpcup modules, and because many people would like the freedom to choose IDE based on liking and to be able to easily use fpcup Lazarus even for project originally started with Typhon. I simply don't like to be limited in such a way.

Quote
By no means fpcup will be able to deliver something like CodeTyphon, with its very extensive package list. As (original developer) late BigChimp stated: fpcup is something like an extensive macro for installing FPC and Lazarus.
I don't see why not. If people start contributing list could be extended a lot. That's why I was thinking aloud mentioning idea about parameterized module files instead of module development. Much more people could contribute that way. Well, no one can forbid dreaming, right?

Quote
I will have a go on your first list of packages. Start with Cindy. And further.
This is how I will proceed. But please feel free to add / change / cooperate. Input is always welcome and appreciated.
Well, I didn't plan to involve at this point, but since you were so kind and surprised me a lot (in a positive sense) I promise to take a look. Maybe it will be all clear, but if not, it would help if you try to document process of creating Cindy fpcup module. Maybe people will start contributing their favorite packages once they see it's not that hard. That would benefit all of us...

Anyway, thanks for showing such a good will!

Btw. Is it possible now to create a module that would install package not from SVN/GIT but from existing folder, or to unpack 7z file and install from one of it's folders?
« Last Edit: April 23, 2015, 12:53:32 pm by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #22 on: April 27, 2015, 10:35:08 am »
Added some more modules to fpcup !

Indy.
BGRA.
Eye Candy Controls.
Virtual Treeview.

Testing and reports are very welcome !

totya

  • Hero Member
  • *****
  • Posts: 720
Re: fpcup 3.1.1 Update
« Reply #23 on: May 04, 2015, 07:18:00 pm »
Hi!

My simple question, I use "default" parameter (your suggest it about half hour ago), but I need few svn file, becaue these are bug-free versions. This is possible?
What I mean:
pascal sources download...
then... download and override files from "custom_freepascal.txt".
then compile... :)

contains of the custom_freepascal.txt for me, for example:

svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-db/src/sqlite/

or

http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-db/src/sqlite/sqlite3ds.pas
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-db/src/sqlite/customsqliteds.pas

see: http://forum.lazarus.freepascal.org/index.php/topic,28203.msg175909.html#msg175909

Thanks!

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #24 on: May 04, 2015, 07:30:13 pm »
I changed the settings of the scripts to default !

What you ask for is not possible with fpcup.
Fpcup downloads from a single fpc svn source.
The choices are limited to what is available online:
http://svn.freepascal.org/svn/fpc

However, you can do:
Code: [Select]
fpcup --fpcURL="trunk" --lazURL="default"
Not exactly what you want, but a good workaround.

Another trick you could use: install default, and overwrite directory "packages/fcl-db/src/sqlite/" with trunk.
Then, run fpcup again. Changes will be stored (in diff) and reapplied after svn update.

totya

  • Hero Member
  • *****
  • Posts: 720
Re: fpcup 3.1.1 Update
« Reply #25 on: May 04, 2015, 07:34:36 pm »
What you ask for is not possible with fpcup.

Okay, now is impossible, but I think this is a very simple and important quest :)
After sources files download, this app download files from the custom file (line by line), then compile...

Thanks for the info!

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #26 on: May 04, 2015, 07:45:56 pm »
Then I did not explain good enought !

Fpcup downloads fpc as a local svn repository.
Inside the fpc directory, there is a (hidden) .svn directory.
All files are stored within this directory (some sort of database).
Local changes can be tracked with the appropriate tools (e.g. TortoiseSVN)

Every time fpcup is run, it runs a svn client to update the local fpc sources.
The whole fpc directory is a single local svn repository.
A mirror of an online fpc repository. This is how svn works.
Fpcup does not download fpc as a flat file or directory structure or zip.

So, in this case: computer (svn) says no !

However, I will think of a feature to define extra downloads from a separate source by the use of a module. The same way as other packages are defined inside fpcup.ini.

I will keep you informed.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: fpcup 3.1.1 Update
« Reply #27 on: May 04, 2015, 10:55:39 pm »
pascal sources download...
then... download and override files from "custom_freepascal.txt".
then compile...
You need to study FPCUP.INI file and see how existing modules are parameterized. Then you can make your own module where just single command is executed. That single command can be a BAT file using external tools for files download and then execute FPC recompilation.
Another way would be to study FPCUP sources and implement needed functionality in code. SvnURL, GitURL and HgURL downloads are already implemented to be used in modules. FileURL and FileListURL downloads are not yet implemented in modules, but everything needed is already there so it shouldn't be too hard to extend modules with such functionality.
« Last Edit: May 05, 2015, 12:20:35 am by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1739
Re: fpcup 3.1.1 Update
« Reply #28 on: May 05, 2015, 09:19:11 am »
There are already two extra (module) options:
*) ArchiveURL for downloading and unpacking remote zipped-files
*) ArchivePATH for unpacking local zipped-files

Problem: these commands can not (yet) be used for patching source files.

However, for the described problem, the method is quite simple.

Install vanilla fpc / laz by issuing
Code: [Select]
fpcup --fpcURL="default" --lazURL="default"
Copy over the changed files from
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-db/src/sqlite/sqlite3ds.pas
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-db/src/sqlite/customsqliteds.pas


Then, run fpcup again
Code: [Select]
fpcup --fpcURL="default" --keeplocalchanges="false" --reapplylocalchanges="true" --only="fpc,fpccrosswin32-64"
And all is done !!
You can run the above command 100 times a day.
The local changes will propagate by diff and patch !!
The fpc diff will be stored inside the fpc directory.

totya

  • Hero Member
  • *****
  • Posts: 720
Re: fpcup 3.1.1 Update
« Reply #29 on: May 05, 2015, 06:51:46 pm »
Hi!

Thanks for your job, but doesn't work this method.

I overwrite old source files from svn.

After rebuild sample project, I get component error again, and I see, the recompiled files times doesn't changed... ex.: sqlite3ds.o sqlite3ds.ppu. This is mean, the new source files doesn't compiled really.

See attached log file.

fpcup.exe is latest from svn (rev 24).


 

TinyPortal © 2005-2018