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.