Working on Smart within the Yocto Project

Anders F Björklund afb at algonet.se
Wed Dec 5 10:38:25 PST 2012


Paul Eggleton wrote:

> 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)

At one point openSUSE was using Smart, but they are back to Zypper now...
I am not aware of any other distribution still actively using Smart either.

> 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).

There is some rudimentary support with the smart "rpm-root" config, but
I gather you need to do something more than just set the root in the ts ?

> 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.

Strange coincidence, the bug tracking "recommends" was recently closed
in a related project due to them switching to just using apt instead:

https://bugs.launchpad.net/smart/+bug/268143

But maybe you have a better implementation than just treating the
recommends/suggests as requires... Are you using "Requires(hint)" ?

i.e. the RPMSENSE_MISSINGOK tag flag in RPM

> What would be the preferred way to submit these patches for review?

That would be https://code.launchpad.net/smart but you would still need
someone to review the patch. And there isn't really anyone left to do so.

But creating a "~user/smart/topic" branch and propose it for merging,
is the way to submit patches. You would use bzr for that, by the way.

--anders


> [1] http://www.openembedded.org
> [2] http://www.yoctoproject.org


Viewing the yocto screencast...




More information about the Smart mailing list