[fpc-devel] FPC 3.0.0rc2 and fppkg
Joost van der Sluis
joost at cnoc.nl
Sun Oct 25 18:31:33 CET 2015
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
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