[OE-core] recipe design curiosity: how to best install a package configuration file?

Robert P. J. Day rpjday at crashcourse.ca
Fri Mar 20 11:32:24 UTC 2020


On Sat, 21 Mar 2020, Ankur Tyagi wrote:

> what if sample file is updated in new version? Now you have to
> maintain the copy in your "file/" as well.
>
> If you are using sample file as it is, then keeping a copy is
> probably not a good idea
>
> Cheers
> Ankur

  i actually think that's an argument in my favour ... i would be very
nervous about how upgrading a recipe version would quietly upgrade my
configuration file. i would far prefer to have to manually upgrade my
configuration to keep in step.

rday

>         got into a discussion yesterday about the "cleanest" way to design a
>       .bbappend file to install a package's configuration file, so i'm
>       curious about best practices, and here's an example. (and i'm asking
>       as it looks like this will be an issue for a number of recipes i'm
>       looking at.)
>
>         current recipe for conntrack-tools:
>
>       http://cgit.openembedded.org/meta-openembedded/tree/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.5.bb
>
>       note how the recipe install step installs a conntrack.conf.sample
>       file:
>
>       do_install_append() {
>         install -d ${D}/${sysconfdir}/conntrackd
>         install -d ${D}/${sysconfdir}/init.d
>         install -m 0644 ${S}/doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample
>         ...
>
>       so far, so good. now, in cases where a sample conf file is provided,
>       there is, of course, no guarantee that it will be applicable out of
>       the box -- one *expects* that it might be necessary to tweak such a
>       file and install it as part of a .bbappend file. and here's the point
>       of contention.
>
>         in this current situation, it turns out that that sample conf file
>       just happens to be appropriate, so the entire .bbappend file for this
>       recipe consists of:
>
>       do_install_append () {
>           install -m 0644  \
>           ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample \
>           ${D}/${sysconfdir}/conntrackd/conntrackd.conf
>       }
>
>         yes, that will work, but i suggested that, even though it's
>       convenient, the problem with that approach is that looking at the
>       .bbappend file doesn't show you the contents of the file that will be
>       installed. to see the actual conf file, you'd have to peruse the
>       source, or check the final result ... you get the idea.
>
>         i suggested that, even though the sample file in *this* case was
>       perfectly appropriate, i would choose to make a copy of it under
>       files/, and install the conf file from *there*, the advantage being
>       that the actual file being installed is immediately readable.
>
>         does anyone have any strong opinions on this? it seems mundane, but
>       i think the latter approach is still superior, especially since i
>       suspect most sample configuration files would have to be adjusted,
>       anyway.
>
>         thoughts? just trying to collect some best practices to apply to
>       this project.
>
>       rday
>       --
>       _______________________________________________
>       Openembedded-core mailing list
>       Openembedded-core at lists.openembedded.org
>       http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                         http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================


More information about the Openembedded-core mailing list