|
|
|
|
Jeff Johnson
RPM
Project:
RPM
|
|
Jeff Johnson started at Red Hat the same day as Alan Cox, and has been providing "rpm therapy" to Red Hat developers and users ever since.
The RPM Package Manager (originally the Red Hat Package Manager) is widely used in Linux today. The original design goal of "reproducible builds", i.e. bundling virgin sources with local patches and a spec file build recipe, in order to deliver binary software to end-users reliably and efficiently, is at the core
of rpm, and OSS design. The needs and complexity of OSS on Linux have changed dramatically in the last 9 years. The speed of innovation and the changes in modern computer hardware have, perhaps, made the effort involved in, say, rebuilding OpenOffice "reproducibly" considerably more complex than what was originally intended to be implemented in rpm's single executable and library.
This presentation explores refactoring rpm functionality along natural fault lines in order to achieve a design framework for the thinnest possible "package" object, ideally a simple file manifest. A lightweight "package" object could then be passed through existing build and install processes using a collection of interchangeable tools. The goal is to redesign the components involved in building packages with minimal possible disruptions to existing applications, like depsolvers and build systems, that are based on the existing rpm implementation. Producing an rpm package should become no more complicated
than enumerating the file contents that are to be contained within the packaging cellophane.
The hope is that the experience of 9 years of experience with rpm might provide a framework for a universal package manager, and changing the focus of packaging to files, rather than packages, thereby avoiding the well known and artificial incompatibilities between existing packaging systems to the greatest extent possible. |
|
|
|
|
|