What do you want in a package manager?
Nancy Yuen
yuenn at google.com
Wed Jul 22 07:10:23 AEST 2020
On Tue, Jul 21, 2020 at 8:17 AM Patrick Williams <patrick at stwcx.xyz> wrote:
> On Tue, Jul 21, 2020 at 12:57:00AM -0700, Nancy Yuen wrote:
> > I'm looking into package management for BMCs in our fleet. I'm wondering
> > who else is interested in this, does it make sense for OpenBMC. What
> kind
> > of features are important? What kind of package format (rpm, deb,
> > something else)?
>
> We've similarly started playing with package management at Facebook.
> One of the reasons for us doing it is that we still have Python
> installed in the image and are running out of space, so we're moving
> some of the debug tools into packages that can be side-loaded as needed.
> We've also implemented 'ptest', which allows you to create packages
> containing your unit tests and run them on a real machine.
>
Our first use case is loading fw packages for other system components
managed by the BMC, so not code directly run by the BMC. But I can see it
extending to other things, daemons we want to update independing etc. We
are also running out of space, exploring secondary storage options. I
think that's primarily where the package manager will be managing packages
in Google systems. The BMC flash will have a basic core firmware image,
and load other packages from secondary storage.
How far have you gotten with package management? What have you considered?
>
> We found that we had to switch to ipkg instead of rpm because the extra
> things rpm needed were too big to fit. I recall it was on the order of
> 5MB of content needed to make rpm work and ipkg was almost free. [1]
>
Today Google has a custom package format but I want to see what other
options make sense in the wider OpenBMC community. I'm not familiar with
ipkg so I'll take a look.
> One issue you'll want to be aware of, that many of our recipes have, is
> that they often are missing:
>
> PACKAGE_ARCH = "${MACHINE_ARCH}"
>
> This causes the package to be specified as relevant for a generic ARM
> system, matching the architecture revision of your underlying AST2xxx
> chip, rather than your particular machine. Any package which can be
> customized for a particular machine (such as by machine-specific compile
> flags, or YAML/JSON files) should have the above variable set so that a
> package compiled for Witherspoon cannot be installed onto a Zaius.
>
> If you look under your Yocto build tree under `tmp/work` you'll see
> `arm1176jzs-openbmc-linux-gnueabi` and
> `witherspoon-openbmc-linux-gnueabi`. I suspect at least most of the
> phosphor-* packages under the arm1176jzs subdirectory are likely candidates
> for having this PACKAGE_ARCH fixed. We might want to simply add it to
> any '.bbappend' we do in a machine layer.
>
I wasn't aware of that, thanks!
>
> 1.
> https://github.com/facebook/openbmc/commit/43430d38dfd0e5557f96940547594e01373f863e
>
> --
> Patrick Williams
>
----------
Nancy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20200721/d74057ad/attachment.htm>
More information about the openbmc
mailing list