Working on Smart within the Yocto Project
Paul Eggleton
paul.eggleton at linux.intel.com
Tue Dec 4 03:56:02 PST 2012
Hi there,
Over the last month, Mark Hatle at Wind River Systems, myself and several
other engineers have been working on integrating Smart into OpenEmbedded [1]
as part of the Yocto Project [2] to be used in conjunction with RPM 5 when RPM
is selected as the output package format. Smart is being used in two
capacities:
1) In the traditional manner for installing and upgrading packages on the
target system (as a replacement for Zypper)
2) As part of the root file system construction process on the build host -
i.e. installing all of the base packages that go into a root filesystem. This
replaces a custom set of scripts wrapping RPM and some helper utilities.
This posed the most challenges; we need to be able to install an entire system
into a specific path instead of /, which turned out to be a little more
complicated than just setting rpm-root (mostly due to needing to pass other to
RPM so it behaves in the correct way).
In the process we have applied a number of patches to Smart, and ideally we
would like to get these integrated upstream. Some of them are straightforward
bug fixes, others implement new functionality.
The largest of the patches is to implement "recommends" support (i.e. where a
dependency relationship is marked such that installation should succeed even
if the dependency can't be satisfied). Although unusual for RPM-based systems,
support for this is required for our system so we have added it into the
cache, the transaction code, the RPM backend, and the rpm-md metadata code
(corresponding patch also needed for createrepo). We haven't implemented
support for this in other backends that would make sense (e.g. deb) but it
would not be hard to do so.
What would be the preferred way to submit these patches for review?
Thanks,
Paul
[1] http://www.openembedded.org
[2] http://www.yoctoproject.org
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the Smart
mailing list