Package system update

Now that the feature freeze has been lifted, I will be making a push over the next few days to merge the new package code I’ve been working on into HEAD. The following features are among those currently planned for initial inclusion:

  • Multiple package repositories
    • Although the pfSense team will continue to run an ‘official’ repository, the package system will be moving to a more decentralized model. Any user may create their own repository XML file using the repomaker tool (check tools/repomaker in HEAD).
    • Repository files will now contain a much greater amount of information about packages. In addition to the metadata provided by the current system, each XML file will include repository information, a list of available mirrors, and the BSD packages required by each pfSense package. This makes the installation process much simpler.
    • Similar to the FreeBSD ports system or ipkg, a client will need to manually update their repository files to get new information, instead of sending an XMLRPC request to the repo. This makes it easier to run a repository and eliminates unnecessary interaction between the server and the client.
  • Cleaner package XML files
    • The package XML format has been cleaned up to be easier to read and maintain.
    • All package information has been moved into the package file rather than the repository document. This makes it much easier to quickly change a repository or share package files.
  • Speed improvements
    • Information about the package system is cached whenever possible to avoid the overhead associated with walking the filesystem or parsing an XML document.
  • Cleaner startup
    • A single function called at boot handles the package system startup process.
    • All packages now expose pfSense services when necessary. This list of services allows greater flexibility when determining which services to start and stop.
  • Input validation
    • All input gathered by package GUIs will now be automatically validated. Package authors may also pass $input_errors to their configuration functions to do more specialized input validation.

Are there any features you would like to see in the pfSense package system? Please leave a note or mail the list with questions/comments.

Share this Post:

Please don’t post technical questions or off-topic comments. It is far more likely that your questions and concerns will be addressed effectively through one of our support channels.

Leave a Reply