[oe] [meta-networking][PATCH] unbound: create recipe for version 1.9.1

Khem Raj raj.khem at gmail.com
Wed May 29 09:12:25 UTC 2019


On Tue, May 28, 2019 at 8:33 PM Ben <beniaminsandu at gmail.com> wrote:
>
> Hi,
>
> I got back to this and updated the recipe. Problem is the sysvinit
> script/systemd service file that come from the original package, don't
> work out of the box, they both require tinkering.
>
> What is the best "oe approach" for this? Do we ship new files that work
> with our bitbake package? Is the end user supposed to adapt the config
> files to the needed environment?

Generate the diff on top of provided scripts and submit patch upstream
to the package developers
and a patch to OE as well.

>
> Cheers,
>
> Beni
>
> On 29.04.2019 14:25, Ben wrote:
> > On 4/29/19 2:16 PM, Tom Rini wrote:
> >
> >> On Mon, Apr 29, 2019 at 02:09:08PM +0300, Ben wrote:
> >>> On 4/29/19 3:53 AM, Tom Rini wrote:
> >>>> On Sun, Apr 28, 2019 at 12:35:51AM +0300, Beniamin Sandu wrote:
> >>>>
> >>>>> Signed-off-by: Beniamin Sandu <beniamin.sandu at gmail.com>
> >>>>> ---
> >>>>>   .../recipes-support/unbound/unbound_1.9.1.bb  | 36
> >>>>> +++++++++++++++++++
> >>>>>   1 file changed, 36 insertions(+)
> >>>>>   create mode 100644
> >>>>> meta-networking/recipes-support/unbound/unbound_1.9.1.bb
> >>>>>
> >>>>> diff --git
> >>>>> a/meta-networking/recipes-support/unbound/unbound_1.9.1.bb
> >>>>> b/meta-networking/recipes-support/unbound/unbound_1.9.1.bb
> >>>>> new file mode 100644
> >>>>> index 000000000..84bbe6581
> >>>>> --- /dev/null
> >>>>> +++ b/meta-networking/recipes-support/unbound/unbound_1.9.1.bb
> >>>>> @@ -0,0 +1,36 @@
> >>>>> +SUMMARY = "Unbound is a validating, recursive, and caching DNS
> >>>>> resolver"
> >>>>> +DESCRIPTION = "Unbound's design is a set of modular components
> >>>>> which incorporate \
> >>>>> +    features including enhanced security (DNSSEC) validation,
> >>>>> Internet Protocol \
> >>>>> +    Version 6 (IPv6), and a client resolver library API as an
> >>>>> integral part of the \
> >>>>> +    architecture"
> >>>>> +
> >>>>> +HOMEPAGE = "https://www.unbound.net/"
> >>>>> +SECTION = "net"
> >>>>> +LICENSE = "BSD-3-Clause"
> >>>>> +LIC_FILES_CHKSUM =
> >>>>> "file://LICENSE;md5=5308494bc0590c0cb036afd781d78f06"
> >>>>> +
> >>>>> +SRC_URI =
> >>>>> "git://github.com/NLnetLabs/unbound.git;protocol=http;branch=master"
> >>>>> +SRCREV="16cc196bf28aec604ed2dae2b5af2ed82c8a58d6"
> >>>>> +
> >>>>> +inherit autotools pkgconfig systemd
> >>>>> +
> >>>>> +DEPENDS = "openssl libevent libtool-native bison-native expat"
> >>>>> +RDEPENDS_${PN} = "bash openssl-bin"
> >>>>> +
> >>>>> +S = "${WORKDIR}/git"
> >>>>> +
> >>>>> +EXTRA_OECONF = "libtool=${TARGET_PREFIX}libtool \
> >>>>> +        --with-ssl=${STAGING_EXECPREFIXDIR}"
> >>>>> +
> >>>>> +PACKAGECONFIG =
> >>>>> "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
> >>>>> +PACKAGECONFIG[systemd] = "--enable-systemd,,systemd"
> >>>> You should probably add:
> >>>> PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'largefile
> >>>> systemd', d)}"
> >>>> PACKAGECONFIG[dnscrypt] = "--enable-dnscrypt, --disable-dnscrypt,
> >>>> libsodium"
> >>>> PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
> >>>> PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
> >>> Thanks, I will add those. I've only used unbound a bit and thought
> >>> about
> >>> sending a patch with a recipe for it since I noticed there is none,
> >>> but I
> >>> didn't look into many configuration options.
> >> And thanks for your contribution!  I only kinda stumbled on those others
> >> being possible myself.
> >>
> >>>>> +do_install_append() {
> >>>>> +    # systemd support
> >>>>> +    if
> >>>>> ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};
> >>>>> then
> >>>>> +        install -d ${D}${systemd_unitdir}/system/
> >>>>> +        install -m 0644 ${B}/contrib/${BPN}.service
> >>>>> ${D}${systemd_unitdir}/system/${BPN}.service
> >>>>> +    fi
> >>>>> +}
> >>>>> +
> >>>>> +SYSTEMD_SERVICE_${PN} = "${BPN}.service"
> >>>> Then you're missing the sysvinit script too?  You can just do:
> >>>> do_install_append() {
> >>>>      install -d ${D}${systemd_unitdir}/system
> >>>>      install -m 0644 ${B}/contrib/unbound.service
> >>>> ${D}${systemd_unitdir}/system
> >>>>
> >>>>      install -d ${D}${sysconfdir}/init.d
> >>>>      install -m 0755 ${S}/contrib/unbound.init
> >>>> ${D}${sysconfdir}/init.d/unbound
> >>>> }
> >>>>
> >>>> And the right things are packaged or not.
> >>> Wouldn't be better to install these files under an if where we check
> >>> DISTRO_FEATURES for systemd/sysvinit like in my initial patch?
> >> No, that just adds more complexity to the recipe that we don't need to
> >> have.  Oh, and since we're adding the sysvinit script too you need
> >> to inherit update-rc.d and add some appropriate lines too so it's
> >> installed right.  The current best practice, iirc, is to do both if we
> >> can do both and then we have the right logic elsewhere to not do
> >> sysvinit stuff on systemd and vice-versa.
> >>
> > Cool, I will send a v2 when I get to a proper machine.
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel


More information about the Openembedded-devel mailing list