[fpc-devel] FPC 3.0.0rc2 and fppkg

Joost van der Sluis joost at cnoc.nl
Sun Oct 25 18:31:33 CET 2015

Hi all,

One of the new (or rather improved) features of fpc 3.0.0 is the Free 
Pascal packages repository, or shortly fppkg. Basically this is an 
online repository in which you can find several Free Pascal libraries 
that you can use in your projects.

It would be nice if some people can test if it works correctly. It 
should be configured correctly when you used one of the official 
3.0.0-rc2 releases.

First test would be to run 'fppkg list -l'. It should list the name of 
all available packages. All packages that come by default with fpc 
should be marked as installed. If this does not work, there is probably 
a flaw in the configuration. Or you are on Windows, in which case you 
should read the note below this mail. To troubleshoot the configuration, 
use 'fppkg listsettings'.

Second test is to install a package, for example fcl-base, by running 
'fppkg install fcl-base'. This should download the fcl-base package, 
compile it, install it, and thereafter recompile all packages that have 
a dependency on fcl-base. In case the code of these packages is not 
available it should also download those.

This test might look useless, as fcl-base is already installed, but try 
'fppkg list -l' after the installation. You will see that the fcl-base 
package is not installed into the default location (G, short for global) 
but in another location (L, short for local). The local-repository is 
user-specific and useful if you want to test a change in a package, or 
want to have the package compiled with different compiler settings.

So the next test is to install fcl-base with debug-information. You do 
this with 'fppkg install fcl-base -o -gl'. This will install fcl-base 
compiled with debug information and re-compile all depending packages. 
(With the same compiler-settings they were compiled with earlier - so 
normally without debug-information)

Now fcl-base is installed into the local repository with debug 
information, you can create an application using the contnrs unit, and 
see if you can step into it inside the debugger. If not, the Free Pascal 
compiler might not be configured correctly, so that is does not add the 
local repository to it's search path.

Instead of adding debug-information to a package, you could also try to 
add some new functionality to an unit in a package and install it 
without getting into troubles with packages that depend on the changed 
package, as they are automatically re-compiled.

Last, and real, test is to install a package that is not available in 
fpc by default. Like lnet.

Please test and send your findings here.



Note for Windows users: It seems that there is a bug in the 
inno-installer of 3.0.0rc2, with as result that fppkg can not find the 
packages that are installed by the official installer. This should not 
be a big problem, as fppkg will download all the packages that it needs 
and install those. So in the case of fcl-base, it will also download and 
install all packages that fcl-base itself depends on.
There is one other issue, though, and that is that fppkg needs the 
fpmkunit-package to compile packages. There is a fallback-mode to work 
without fpmkunit, but this might not work in all cases due to another 
bug in 3.0.0rc2. You can work-around this bug by installing the fpmkunit 
package before you try to install any other package. ('fppkg install 

More information about the fpc-devel mailing list