What is it?

IPFire 3 will come with a totally new package management system that is written from scratch. It is supposed to replace the old Pakfire system which only implemented adding certain packages (add-ons) and could apply system updates as a whole. The new version is taking ideas from popular systems like RPM and DPKG, but as those have not been feeling right for our purpose, with Pakfire, we are going to implement a new system from scratch.

Who is working on it?

Current Status

This project is now in an early beta stage. The vast majority of the features below have been implemented, but there will be bugs to be found as it has not been tested by many developers or end-users, yet. As development is moving quite fast, there is currently no tracker bug for any milestones, but there is an extra product on Bugzilla.

Description

Pakfire is a package management systems written in C. On top of that, it is also the build system for IPFire and implements various novel ideas which are supposed to help make development faster and easier for everyone involved. It will come with these features:

  • A new package management tool
  • Install/Uninstall packages based on the needs of a specific environment
  • (Automatically) Upgrade/Downgrade/Rollback any changes which will make taking part in testing a lot more risk-free for developers and users alike
  • A new package format which will use Zstandard & SHA3/Blake2 checksumming for small, fast to download packages that can be extracted really fast and come with loads of metadata that guarantees the integrity of the package itself as well as the entire system once it is installed
  • A new build tool
  • Build packages within seconds
  • No more need to rebuild the entire distribution from scratch, additional snapshotting features will have a defined build environment available within a few milliseconds
  • An online build service
  • Share builds with other users for testing
  • Use our distributed builders hosted in a data center
  • Build natively for foreign architectures

Benefits to IPFire

Since RPM and APT/DPKG were not found suitable at the time, Pakfire was started as a new project. In writing our own implementation, we are independent from these projects as there has been some motivation to make larger changes to them. As IPFire does not want to keep following fast-paced upstream projects for something as fundamental as the package management system, we believe that this is the better option for the future.

Impact

We believe that this is the way forward to overcome a lot of shortcomings of the old build system which is fragile, slow and difficult to use. Testers will have a great way to dip into recent builds and try out new features, if there are any problems, changes can be rolled back immediately and the system can be restored to the latest "official" release.

Documentation

TBD