There are various different meanings of the term "packages" in the combined FPC/Lazarus projects.
In nearly all cases packages are collections of units and some build and descriptive metadata. In a few cases there is more.
The basic types:
- Lazarus Runtime Packages Adding a dependency on a runtime package, causes Lazarus to add the files to the search path.
- FPMake and fppkg contain info about the newer Free Pascal packaging system based on fpmake.pp.
- Package List is a master index page that lists packages in the FPC packages/ directory. These are packages with fpmake buildsystem and metadata.
- Fpcmake contains info about the older (but still used) Makefile.fpc Free Pascal packaging system.
Types where there is something more going on:
- Lazarus Designtime Packages are packages that on register themselves in the IDE, e.g. designtime editor components for the object inspector. It can also contain runtime-only units.
- Library Packages a study about as of yet unimplemented Library Packages (like Delphi's .BPL), where packages are reusable parts of the program in special files (DLL with special interfaces). These can also be dynloaded.