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

Ben beniaminsandu at gmail.com
Tue May 28 18:33:18 UTC 2019


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?

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.


More information about the Openembedded-devel mailing list