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

Submitted by Beniamin Sandu on April 27, 2019, 9:35 p.m. | Patch ID: 160736

Details

Message ID 20190427213551.14485-1-beniamin.sandu@gmail.com
State Changes Requested
Headers show

Commit Message

Beniamin Sandu April 27, 2019, 9:35 p.m.
Signed-off-by: Beniamin Sandu <beniamin.sandu@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

Patch hide | download patch | download mbox

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"
+
+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"

Comments

Tom Rini April 29, 2019, 12:53 a.m.
On Sun, Apr 28, 2019 at 12:35:51AM +0300, Beniamin Sandu wrote:

> Signed-off-by: Beniamin Sandu <beniamin.sandu@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"

> +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.

I had a recipe for 1.9.0 locally that I didn't post as I ran into some
other problem with unbound, and then ran out of time to re-visit, which
is why I have these bits handy.
Beniamin Sandu April 29, 2019, 11:09 a.m.
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@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.

>
>> +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?
>
> I had a recipe for 1.9.0 locally that I didn't post as I ran into some
> other problem with unbound, and then ran out of time to re-visit, which
> is why I have these bits handy.
>
Tom Rini April 29, 2019, 11:16 a.m.
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@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.
Beniamin Sandu April 29, 2019, 11:25 a.m.
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@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.
Beniamin Sandu May 28, 2019, 6:33 p.m.
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@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.
Khem Raj May 29, 2019, 9:12 a.m.
On Tue, May 28, 2019 at 8:33 PM Ben <beniaminsandu@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@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@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel