Hi Robert, On Fri, Mar 20, 2020 at 07:04:05AM -0400, Robert P. J. Day wrote: > > 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. >
Have a look at how wpa-supplicant is doing it. It has two config files. wpa-supplicant.conf which is going straight to the docs directory on the rootfs and wpa-supplicant.conf-sane which is the one used by wpa-supplicant at runtime. So when you want to override the default wpa-supplicant.conf, you override wpa-supplicant.conf-sane in a bbappend. I don't know if it's the proper way, but that's one and particularly in poky which is usually done with best practices in mind. Quentin -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
