Hello Armin,

On Tue, Sep 1, 2020 at 5:23 PM akuster <akuster...@gmail.com> wrote:
>
> Removed obsolete packageconfig options
>
> License change to MPL-2.0
> https://gitlab.isc.org/isc-projects/bind9/blob/master/LICENSE
>
> Refreshed:
> bind-ensure-searching-for-json-headers-searches-sysr.patch
> 0001-named-lwresd-V-and-start-log-hide-build-options.patch
> bind-ensure-searching-for-json-headers-searches-sysr.patch
>
> Drop obsolete patch: 0001-configure.in-remove-useless-L-use_openssl-lib.patch
>
> Signed-off-by: Armin Kuster <akuster...@gmail.com>
> ---
>  ...1-avoid-start-failure-with-bind-user.patch |  27 ++
>  ...d-V-and-start-log-hide-build-options.patch |  35 ++
>  ...ching-for-json-headers-searches-sysr.patch |  47 +++
>  .../bind/bind-9.16.5/bind9                    |   2 +
>  .../bind/bind-9.16.5/conf.patch               | 330 ++++++++++++++++++
>  .../bind/bind-9.16.5/generate-rndc-key.sh     |   8 +
>  ...t.d-add-support-for-read-only-rootfs.patch |  65 ++++
>  .../make-etc-initd-bind-stop-work.patch       |  42 +++
>  .../bind/bind-9.16.5/named.service            |  22 ++
>  meta/recipes-connectivity/bind/bind_9.16.5.bb | 125 +++++++
>  10 files changed, 703 insertions(+)
>  create mode 100644 
> meta/recipes-connectivity/bind/bind-9.16.5/0001-avoid-start-failure-with-bind-user.patch
>  create mode 100644 
> meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch
>  create mode 100644 
> meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch
>  create mode 100644 meta/recipes-connectivity/bind/bind-9.16.5/bind9
>  create mode 100644 meta/recipes-connectivity/bind/bind-9.16.5/conf.patch
>  create mode 100644 
> meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh
>  create mode 100644 
> meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch
>  create mode 100644 
> meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch
>  create mode 100644 meta/recipes-connectivity/bind/bind-9.16.5/named.service
>  create mode 100644 meta/recipes-connectivity/bind/bind_9.16.5.bb
>
> diff --git 
> a/meta/recipes-connectivity/bind/bind-9.16.5/0001-avoid-start-failure-with-bind-user.patch
>  
> b/meta/recipes-connectivity/bind/bind-9.16.5/0001-avoid-start-failure-with-bind-user.patch
> new file mode 100644
> index 00000000000..8db96ec049c
> --- /dev/null
> +++ 
> b/meta/recipes-connectivity/bind/bind-9.16.5/0001-avoid-start-failure-with-bind-user.patch
> @@ -0,0 +1,27 @@
> +From 31dde3562f287429eea94b77250d184818b49063 Mon Sep 17 00:00:00 2001
> +From: Chen Qi <qi.c...@windriver.com>
> +Date: Mon, 15 Oct 2018 16:55:09 +0800
> +Subject: [PATCH] avoid start failure with bind user
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Chen Qi <qi.c...@windriver.com>
> +---
> + init.d | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/init.d b/init.d
> +index b2eec60..6e03936 100644
> +--- a/init.d
> ++++ b/init.d
> +@@ -57,6 +57,7 @@ case "$1" in
> +       modprobe capability >/dev/null 2>&1 || true
> +       if [ ! -f /etc/bind/rndc.key ]; then
> +           /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
> ++          chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true
> +           chmod 0640 /etc/bind/rndc.key
> +       fi
> +       if [ -f /var/run/named/named.pid ]; then
> +--
> +2.7.4
> +
> diff --git 
> a/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch
>  
> b/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch
> new file mode 100644
> index 00000000000..5bcc16c9b2b
> --- /dev/null
> +++ 
> b/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch
> @@ -0,0 +1,35 @@
> +From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001
> +From: Hongxu Jia <hongxu....@windriver.com>
> +Date: Mon, 27 Aug 2018 21:24:20 +0800
> +Subject: [PATCH] `named/lwresd -V' and start log hide build options
> +
> +The build options expose build path directories, so hide them.
> +[snip]
> +$ named -V
> +|built by make with *** (options are hidden)
> +[snip]
> +
> +Upstream-Status: Inappropriate [oe-core specific]
> +
> +Signed-off-by: Hongxu Jia <hongxu....@windriver.com>
> +
> +Refreshed for 9.16.0
> +Signed-off-by: Armin Kuster <akus...@mvista.com>
> +
> +---
> + bin/named/include/named/globals.h | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +Index: bind-9.16.0/bin/named/include/named/globals.h
> +===================================================================
> +--- bind-9.16.0.orig/bin/named/include/named/globals.h
> ++++ bind-9.16.0/bin/named/include/named/globals.h
> +@@ -69,7 +69,7 @@ EXTERN const char *named_g_version     I
> + EXTERN const char *named_g_product     INIT(PRODUCT);
> + EXTERN const char *named_g_description INIT(DESCRIPTION);
> + EXTERN const char *named_g_srcid       INIT(SRCID);
> +-EXTERN const char *named_g_configargs  INIT(CONFIGARGS);
> ++EXTERN const char *named_g_configargs  INIT("*** (options are hidden)");
> + EXTERN const char *named_g_builder     INIT(BUILDER);
> + EXTERN in_port_t named_g_port        INIT(0);
> + EXTERN isc_dscp_t named_g_dscp               INIT(-1);
> diff --git 
> a/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch
>  
> b/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch
> new file mode 100644
> index 00000000000..f9cdc7ca4df
> --- /dev/null
> +++ 
> b/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch
> @@ -0,0 +1,47 @@
> +From edda20fb5a6e88548f85e39d34d6c074306e15bc Mon Sep 17 00:00:00 2001
> +From: Paul Gortmaker <paul.gortma...@windriver.com>
> +Date: Tue, 9 Jun 2015 11:22:00 -0400
> +Subject: [PATCH] bind: ensure searching for json headers searches sysroot
> +
> +Bind can fail configure by detecting headers w/o libs[1], or
> +it can fail the host contamination check as per below:
> +
> +ERROR: This autoconf log indicates errors, it looked at host include and/or 
> library paths while determining system capabilities.
> +Rerun configure task after fixing this. The path was 
> 'build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/build'
> +ERROR: Function failed: do_qa_configure
> +ERROR: Logfile of failure stored in: 
> build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/temp/log.do_configure.5242
> +ERROR: Task 5 (meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure) 
> failed with exit code '1'
> +NOTE: Tasks Summary: Attempted 773 tasks of which 768 didn't need to be 
> rerun and 1 failed.
> +No currently running tasks (773 of 781)
> +
> +Summary: 1 task failed:
> +  /meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure
> +
> +One way to fix it would be to unconditionally disable json in bind
> +configure[2] but here we fix it by using the path to where we would
> +put the header if we had json in the sysroot, in case someone wants
> +to make use of the combination some day.
> +
> +[1] https://trac.macports.org/ticket/45305
> +[2] https://trac.macports.org/changeset/126406
> +
> +Upstream-Status: Inappropriate [OE Specific]
> +Signed-off-by: Paul Gortmaker <paul.gortma...@windriver.com>
> +
> +---
> + configure.ac | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +Index: bind-9.16.4/configure.ac
> +===================================================================
> +--- bind-9.16.4.orig/configure.ac
> ++++ bind-9.16.4/configure.ac
> +@@ -1232,7 +1232,7 @@ case "$use_lmdb" in
> +               LMDB_LIBS=""
> +               ;;
> +       auto|yes)
> +-              for d in /usr /usr/local /opt/local
> ++              for d in "${STAGING_INCDIR}"
> +               do
> +                       if test -f "${d}/include/lmdb.h"
> +                       then
> diff --git a/meta/recipes-connectivity/bind/bind-9.16.5/bind9 
> b/meta/recipes-connectivity/bind/bind-9.16.5/bind9
> new file mode 100644
> index 00000000000..968679ff7f7
> --- /dev/null
> +++ b/meta/recipes-connectivity/bind/bind-9.16.5/bind9
> @@ -0,0 +1,2 @@
> +# startup options for the server
> +OPTIONS="-u bind"
> diff --git a/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch 
> b/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch
> new file mode 100644
> index 00000000000..aad345f9fcf
> --- /dev/null
> +++ b/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch
> @@ -0,0 +1,330 @@
> +Upstream-Status: Inappropriate [configuration]
> +
> +the patch is imported from openembedded project
> +
> +11/30/2010 - Qing He <qing...@intel.com>
> +
> +diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0
> +--- bind-9.3.1.orig/conf/db.0  1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/db.0       2005-07-10 22:14:00.000000000 +0200
> +@@ -0,0 +1,12 @@
> ++;
> ++; BIND reverse data file for broadcast zone
> ++;
> ++$TTL  604800
> ++@     IN      SOA     localhost. root.localhost. (
> ++                            1         ; Serial
> ++                       604800         ; Refresh
> ++                        86400         ; Retry
> ++                      2419200         ; Expire
> ++                       604800 )       ; Negative Cache TTL
> ++;
> ++@     IN      NS      localhost.
> +diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127
> +--- bind-9.3.1.orig/conf/db.127        1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/db.127     2005-07-10 22:14:00.000000000 +0200
> +@@ -0,0 +1,13 @@
> ++;
> ++; BIND reverse data file for local loopback interface
> ++;
> ++$TTL  604800
> ++@     IN      SOA     localhost. root.localhost. (
> ++                            1         ; Serial
> ++                       604800         ; Refresh
> ++                        86400         ; Retry
> ++                      2419200         ; Expire
> ++                       604800 )       ; Negative Cache TTL
> ++;
> ++@     IN      NS      localhost.
> ++1.0.0 IN      PTR     localhost.
> +diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty
> +--- bind-9.3.1.orig/conf/db.empty      1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/db.empty   2005-07-10 22:14:00.000000000 +0200
> +@@ -0,0 +1,14 @@
> ++; BIND reverse data file for empty rfc1918 zone
> ++;
> ++; DO NOT EDIT THIS FILE - it is used for multiple zones.
> ++; Instead, copy it, edit named.conf, and use that copy.
> ++;
> ++$TTL  86400
> ++@     IN      SOA     localhost. root.localhost. (
> ++                            1         ; Serial
> ++                       604800         ; Refresh
> ++                        86400         ; Retry
> ++                      2419200         ; Expire
> ++                        86400 )       ; Negative Cache TTL
> ++;
> ++@     IN      NS      localhost.
> +diff -urN bind-9.3.1.orig/conf/db.255 bind-9.3.1/conf/db.255
> +--- bind-9.3.1.orig/conf/db.255        1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/db.255     2005-07-10 22:14:00.000000000 +0200
> +@@ -0,0 +1,12 @@
> ++;
> ++; BIND reserve data file for broadcast zone
> ++;
> ++$TTL  604800
> ++@     IN      SOA     localhost. root.localhost. (
> ++                            1         ; Serial
> ++                       604800         ; Refresh
> ++                        86400         ; Retry
> ++                      2419200         ; Expire
> ++                       604800 )       ; Negative Cache TTL
> ++;
> ++@     IN      NS      localhost.
> +diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local
> +--- bind-9.3.1.orig/conf/db.local      1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/db.local   2005-07-10 22:14:00.000000000 +0200
> +@@ -0,0 +1,13 @@
> ++;
> ++; BIND data file for local loopback interface
> ++;
> ++$TTL  604800
> ++@     IN      SOA     localhost. root.localhost. (
> ++                            1         ; Serial
> ++                       604800         ; Refresh
> ++                        86400         ; Retry
> ++                      2419200         ; Expire
> ++                       604800 )       ; Negative Cache TTL
> ++;
> ++@     IN      NS      localhost.
> ++@     IN      A       127.0.0.1
> +diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root
> +--- bind-9.3.1.orig/conf/db.root       1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/db.root    2005-07-10 22:14:00.000000000 +0200
> +@@ -0,0 +1,45 @@
> ++
> ++; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
> ++;; global options:  printcmd
> ++;; Got answer:
> ++;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
> ++;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
> ++
> ++;; QUESTION SECTION:
> ++;.                            IN      NS
> ++
> ++;; ANSWER SECTION:
> ++.                     518400  IN      NS      A.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      B.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      C.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      D.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      E.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      F.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      G.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      H.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      I.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      J.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      K.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      L.ROOT-SERVERS.NET.
> ++.                     518400  IN      NS      M.ROOT-SERVERS.NET.
> ++
> ++;; ADDITIONAL SECTION:
> ++A.ROOT-SERVERS.NET.   3600000 IN      A       198.41.0.4
> ++B.ROOT-SERVERS.NET.   3600000 IN      A       192.228.79.201
> ++C.ROOT-SERVERS.NET.   3600000 IN      A       192.33.4.12
> ++D.ROOT-SERVERS.NET.   3600000 IN      A       128.8.10.90
> ++E.ROOT-SERVERS.NET.   3600000 IN      A       192.203.230.10
> ++F.ROOT-SERVERS.NET.   3600000 IN      A       192.5.5.241
> ++G.ROOT-SERVERS.NET.   3600000 IN      A       192.112.36.4
> ++H.ROOT-SERVERS.NET.   3600000 IN      A       128.63.2.53
> ++I.ROOT-SERVERS.NET.   3600000 IN      A       192.36.148.17
> ++J.ROOT-SERVERS.NET.   3600000 IN      A       192.58.128.30
> ++K.ROOT-SERVERS.NET.   3600000 IN      A       193.0.14.129
> ++L.ROOT-SERVERS.NET.   3600000 IN      A       198.32.64.12
> ++M.ROOT-SERVERS.NET.   3600000 IN      A       202.12.27.33
> ++
> ++;; Query time: 81 msec
> ++;; SERVER: 198.41.0.4#53(a.root-servers.net.)
> ++;; WHEN: Sun Feb  1 11:27:14 2004
> ++;; MSG SIZE  rcvd: 436
> ++
> +diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf
> +--- bind-9.3.1.orig/conf/named.conf    1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/named.conf 2005-07-10 22:33:46.000000000 +0200
> +@@ -0,0 +1,49 @@
> ++// This is the primary configuration file for the BIND DNS server named.
> ++//
> ++// If you are just adding zones, please do that in 
> /etc/bind/named.conf.local
> ++
> ++include "/etc/bind/named.conf.options";
> ++
> ++// prime the server with knowledge of the root servers
> ++zone "." {
> ++      type hint;
> ++      file "/etc/bind/db.root";
> ++};
> ++
> ++// be authoritative for the localhost forward and reverse zones, and for
> ++// broadcast zones as per RFC 1912
> ++
> ++zone "localhost" {
> ++      type master;
> ++      file "/etc/bind/db.local";
> ++};
> ++
> ++zone "127.in-addr.arpa" {
> ++      type master;
> ++      file "/etc/bind/db.127";
> ++};
> ++
> ++zone "0.in-addr.arpa" {
> ++      type master;
> ++      file "/etc/bind/db.0";
> ++};
> ++
> ++zone "255.in-addr.arpa" {
> ++      type master;
> ++      file "/etc/bind/db.255";
> ++};
> ++
> ++// zone "com" { type delegation-only; };
> ++// zone "net" { type delegation-only; };
> ++
> ++// From the release notes:
> ++//  Because many of our users are uncomfortable receiving undelegated 
> answers
> ++//  from root or top level domains, other than a few for whom that behaviour
> ++//  has been trusted and expected for quite some length of time, we have now
> ++//  introduced the "root-delegations-only" feature which applies 
> delegation-only
> ++//  logic to all top level domains, and to the root domain.  An exception 
> list
> ++//  should be specified, including "MUSEUM" and "DE", and any other top 
> level
> ++//  domains from whom undelegated responses are expected and trusted.
> ++// root-delegation-only exclude { "DE"; "MUSEUM"; };
> ++
> ++include "/etc/bind/named.conf.local";
> +diff -urN bind-9.3.1.orig/conf/named.conf.local 
> bind-9.3.1/conf/named.conf.local
> +--- bind-9.3.1.orig/conf/named.conf.local      1970-01-01 01:00:00.000000000 
> +0100
> ++++ bind-9.3.1/conf/named.conf.local   2005-07-10 22:14:06.000000000 +0200
> +@@ -0,0 +1,8 @@
> ++//
> ++// Do any local configuration here
> ++//
> ++
> ++// Consider adding the 1918 zones here, if they are not used in your
> ++// organization
> ++//include "/etc/bind/zones.rfc1918";
> ++
> +diff -urN bind-9.3.1.orig/conf/named.conf.options 
> bind-9.3.1/conf/named.conf.options
> +--- bind-9.3.1.orig/conf/named.conf.options    1970-01-01 01:00:00.000000000 
> +0100
> ++++ bind-9.3.1/conf/named.conf.options 2005-07-10 22:14:06.000000000 +0200
> +@@ -0,0 +1,24 @@
> ++options {
> ++      directory "/var/cache/bind";
> ++
> ++      // If there is a firewall between you and nameservers you want
> ++      // to talk to, you might need to uncomment the query-source
> ++      // directive below.  Previous versions of BIND always asked
> ++      // questions using port 53, but BIND 8.1 and later use an unprivileged
> ++      // port by default.
> ++
> ++      // query-source address * port 53;
> ++
> ++      // If your ISP provided one or more IP addresses for stable
> ++      // nameservers, you probably want to use them as forwarders.
> ++      // Uncomment the following block, and insert the addresses replacing
> ++      // the all-0's placeholder.
> ++
> ++      // forwarders {
> ++      //      0.0.0.0;
> ++      // };
> ++
> ++      auth-nxdomain no;    # conform to RFC1035
> ++
> ++};
> ++
> +diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918
> +--- bind-9.3.1.orig/conf/zones.rfc1918 1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/conf/zones.rfc1918      2005-07-10 22:14:10.000000000 +0200
> +@@ -0,0 +1,20 @@
> ++zone "10.in-addr.arpa"      { type master; file "/etc/bind/db.empty"; };
> ++
> ++zone "16.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "17.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "18.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "19.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "20.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "21.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "22.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "23.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "24.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "25.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "26.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "27.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "28.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "29.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "30.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++zone "31.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
> ++
> ++zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
> +diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d
> +--- bind-9.3.1.orig/init.d     1970-01-01 01:00:00.000000000 +0100
> ++++ bind-9.3.1/init.d  2005-07-10 23:09:58.000000000 +0200
> +@@ -0,0 +1,70 @@
> ++#!/bin/sh
> ++
> ++PATH=/sbin:/bin:/usr/sbin:/usr/bin
> ++
> ++# for a chrooted server: "-u bind -t /var/lib/named"
> ++# Don't modify this line, change or create /etc/default/bind9.
> ++OPTIONS=""
> ++
> ++test -f /etc/default/bind9 && . /etc/default/bind9
> ++
> ++test -x /usr/sbin/rndc || exit 0
> ++
> ++case "$1" in
> ++    start)
> ++      echo -n "Starting domain name service: named"
> ++
> ++      modprobe capability >/dev/null 2>&1 || true
> ++      if [ ! -f /etc/bind/rndc.key ]; then
> ++          /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
> ++          chmod 0640 /etc/bind/rndc.key
> ++      fi
> ++      if [ -f /var/run/named/named.pid ]; then
> ++          ps `cat /var/run/named/named.pid` > /dev/null && exit 1
> ++      fi
> ++
> ++      # dirs under /var/run can go away on reboots.
> ++      mkdir -p /var/run/named
> ++      mkdir -p /var/cache/bind
> ++      chmod 775 /var/run/named
> ++      chown root:bind /var/run/named >/dev/null 2>&1 || true
> ++
> ++      if [ ! -x /usr/sbin/named ]; then
> ++          echo "named binary missing - not starting"
> ++          exit 1
> ++      fi
> ++      if start-stop-daemon --start --quiet --exec /usr/sbin/named \
> ++              --pidfile /var/run/named/named.pid -- $OPTIONS; then
> ++          if [ -x /sbin/resolvconf ] ; then
> ++              echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo
> ++          fi
> ++      fi
> ++      echo "."
> ++    ;;
> ++
> ++    stop)
> ++      echo -n "Stopping domain name service: named"
> ++      if [ -x /sbin/resolvconf ]; then
> ++          /sbin/resolvconf -d lo
> ++      fi
> ++      /usr/sbin/rndc stop >/dev/null 2>&1
> ++      echo "."
> ++    ;;
> ++
> ++    reload)
> ++      /usr/sbin/rndc reload
> ++    ;;
> ++
> ++    restart|force-reload)
> ++      $0 stop
> ++      sleep 2
> ++      $0 start
> ++    ;;
> ++
> ++    *)
> ++      echo "Usage: /etc/init.d/bind 
> {start|stop|reload|restart|force-reload}" >&2
> ++      exit 1
> ++    ;;
> ++esac
> ++
> ++exit 0
> diff --git a/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh 
> b/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh
> new file mode 100644
> index 00000000000..ef915c0ae5a
> --- /dev/null
> +++ b/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh
> @@ -0,0 +1,8 @@
> +#!/bin/sh
> +
> +if [ ! -s /etc/bind/rndc.key ]; then
> +    echo -n "Generating /etc/bind/rndc.key:"
> +    /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
> +    chown root:bind /etc/bind/rndc.key
> +    chmod 0640 /etc/bind/rndc.key
> +fi
> diff --git 
> a/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch
>  
> b/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch
> new file mode 100644
> index 00000000000..11db95ede12
> --- /dev/null
> +++ 
> b/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch
> @@ -0,0 +1,65 @@
> +Subject: init.d: add support for read-only rootfs
> +
> +Upstream-Status: Inappropriate [oe specific]
> +
> +Signed-off-by: Chen Qi <qi.c...@windriver.com>
> +---
> + init.d |   40 ++++++++++++++++++++++++++++++++++++++++
> + 1 file changed, 40 insertions(+)
> +
> +diff --git a/init.d b/init.d
> +index 0111ed4..24677c8 100644
> +--- a/init.d
> ++++ b/init.d
> +@@ -6,8 +6,48 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin
> + # Don't modify this line, change or create /etc/default/bind9.
> + OPTIONS=""
> +
> ++test -f /etc/default/rcS && . /etc/default/rcS
> + test -f /etc/default/bind9 && . /etc/default/bind9
> +
> ++# This function is here because it's possible that /var and / are on 
> different partitions.
> ++is_on_read_only_partition () {
> ++    DIRECTORY=$1
> ++    dir=`readlink -f $DIRECTORY`
> ++    while true; do
> ++      if [ ! -d "$dir" ]; then
> ++          echo "ERROR: $dir is not a directory"
> ++          exit 1
> ++      else
> ++          for flag in `awk -v dir=$dir '{ if ($2 == dir) { print "FOUND"; 
> split($4,FLAGS,",") } }; \
> ++              END { for (f in FLAGS) print FLAGS[f] }' < /proc/mounts`; do
> ++              [ "$flag" = "FOUND" ] && partition="read-write"
> ++              [ "$flag" = "ro" ] && { partition="read-only"; break; }
> ++          done
> ++          if [ "$dir" = "/" -o -n "$partition" ]; then
> ++              break
> ++          else
> ++              dir=`dirname $dir`
> ++          fi
> ++      fi
> ++    done
> ++    [ "$partition" = "read-only" ] && echo "yes" || echo "no"
> ++}
> ++
> ++bind_mount () {
> ++    olddir=$1
> ++    newdir=$2
> ++    mkdir -p $olddir
> ++    cp -a $newdir/* $olddir
> ++    mount --bind $olddir $newdir
> ++}
> ++
> ++# Deal with read-only rootfs
> ++if [ "$ROOTFS_READ_ONLY" = "yes" ]; then
> ++    [ "$VERBOSE" != "no" ] && echo "WARN: start bind service in read-only 
> rootfs"
> ++    [ `is_on_read_only_partition /etc/bind` = "yes" ] && bind_mount 
> /var/volatile/bind/etc /etc/bind
> ++    [ `is_on_read_only_partition /var/named` = "yes" ] && bind_mount 
> /var/volatile/bind/named /var/named
> ++fi
> ++
> + test -x /usr/sbin/rndc || exit 0
> +
> + case "$1" in
> +--
> +1.7.9.5
> +
> diff --git 
> a/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch
>  
> b/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch
> new file mode 100644
> index 00000000000..146f3e35db6
> --- /dev/null
> +++ 
> b/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch
> @@ -0,0 +1,42 @@
> +bind: make "/etc/init.d/bind stop" work
> +
> +Upstream-Status: Inappropriate [configuration]
> +
> +Add some configurations, make rndc command be able to controls
> +the named daemon.
> +
> +Signed-off-by: Roy Li <rongqing...@windriver.com>
> +---
> + conf/named.conf |    5 +++++
> + conf/rndc.conf  |    5 +++++
> + 2 files changed, 10 insertions(+), 0 deletions(-)
> + create mode 100644 conf/rndc.conf
> +
> +diff --git a/conf/named.conf b/conf/named.conf
> +index 95829cf..c8899e7 100644
> +--- a/conf/named.conf
> ++++ b/conf/named.conf
> +@@ -47,3 +47,8 @@ zone "255.in-addr.arpa" {
> + // root-delegation-only exclude { "DE"; "MUSEUM"; };
> +
> + include "/etc/bind/named.conf.local";
> ++include "/etc/bind/rndc.key" ;
> ++controls {
> ++      inet 127.0.0.1 allow { localhost; }
> ++      keys { rndc-key; };
> ++};
> +diff --git a/conf/rndc.conf b/conf/rndc.conf
> +new file mode 100644
> +index 0000000..a0b481d
> +--- /dev/null
> ++++ b/conf/rndc.conf
> +@@ -0,0 +1,5 @@
> ++include "/etc/bind/rndc.key";
> ++options {
> ++      default-server  localhost;
> ++      default-key     rndc-key;
> ++};
> +
> +--
> +1.7.5.4
> +
> diff --git a/meta/recipes-connectivity/bind/bind-9.16.5/named.service 
> b/meta/recipes-connectivity/bind/bind-9.16.5/named.service
> new file mode 100644
> index 00000000000..cda56ef0150
> --- /dev/null
> +++ b/meta/recipes-connectivity/bind/bind-9.16.5/named.service
> @@ -0,0 +1,22 @@
> +[Unit]
> +Description=Berkeley Internet Name Domain (DNS)
> +Wants=nss-lookup.target
> +Before=nss-lookup.target
> +After=network.target
> +
> +[Service]
> +Type=forking
> +EnvironmentFile=-/etc/default/bind9
> +PIDFile=/run/named/named.pid
> +
> +ExecStartPre=@SBINDIR@/generate-rndc-key.sh
> +ExecStart=@SBINDIR@/named $OPTIONS
> +
> +ExecReload=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc reload > /dev/null 2>&1 || 
> @BASE_BINDIR@/kill -HUP $MAINPID'
> +
> +ExecStop=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc stop > /dev/null 2>&1 || 
> @BASE_BINDIR@/kill -TERM $MAINPID'
> +
> +PrivateTmp=true
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/meta/recipes-connectivity/bind/bind_9.16.5.bb 
> b/meta/recipes-connectivity/bind/bind_9.16.5.bb
> new file mode 100644
> index 00000000000..9c20ccc6fa2
> --- /dev/null
> +++ b/meta/recipes-connectivity/bind/bind_9.16.5.bb
> @@ -0,0 +1,125 @@
> +SUMMARY = "ISC Internet Domain Name Server"
> +HOMEPAGE = "http://www.isc.org/sw/bind/";
> +SECTION = "console/network"
> +
> +LICENSE = "MPL-2.0"
> +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=188b8d0644bd6835df43b84e3f180be1"
> +
> +DEPENDS = "openssl libcap zlib libuv"
> +
> +SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
> +           file://conf.patch \
> +           file://named.service \
> +           file://bind9 \
> +           file://generate-rndc-key.sh \
> +           file://make-etc-initd-bind-stop-work.patch \
> +           file://init.d-add-support-for-read-only-rootfs.patch \
> +           file://bind-ensure-searching-for-json-headers-searches-sysr.patch 
> \
> +           file://0001-named-lwresd-V-and-start-log-hide-build-options.patch 
> \
> +           file://0001-avoid-start-failure-with-bind-user.patch \
> +           "
> +
> +SRC_URI[sha256sum] = 
> "6378b3e51fef11a8be4794dc48e8111ba92d211c0dfd129a0c296ed06a3dc075"
> +
> +UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/";
> +# stay at 9.16 follow the ESV versions divisible by 4
> +UPSTREAM_CHECK_REGEX = "(?P<pver>9.(16|20|24|28)(\.\d+)+(-P\d+)*)/"
> +
> +inherit autotools update-rc.d systemd useradd pkgconfig multilib_script 
> multilib_header
> +
> +MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config 
> ${PN}:${bindir}/isc-config.sh"
> +
> +# PACKAGECONFIGs readline and libedit should NOT be set at same time
> +PACKAGECONFIG ?= "readline"
> +PACKAGECONFIG[httpstats] = 
> "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2"
> +PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline"
> +PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit"
> +PACKAGECONFIG[python3] = "--with-python=yes 
> --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, 
> python3-ply-native,"
> +
> +EXTRA_OECONF = " --with-libtool --disable-devpoll --enable-epoll \
> +                 --with-gssapi=no --with-lmdb=no --with-zlib \
> +                 --sysconfdir=${sysconfdir}/bind \
> +                 --with-openssl=${STAGING_DIR_HOST}${prefix} \
> +               "
> +LDFLAGS_append = " -lz"
> +
> +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native 
> distutils3-base', '', d)}
> +
> +# dhcp needs .la so keep them
> +REMOVE_LIBTOOL_LA = "0"
> +
> +USERADD_PACKAGES = "${PN}"
> +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/cache/bind 
> --no-create-home \
> +                       --user-group bind"
> +
> +INITSCRIPT_NAME = "bind"
> +INITSCRIPT_PARAMS = "defaults"
> +
> +SYSTEMD_SERVICE_${PN} = "named.service"
> +
> +do_install_append() {
> +
> +       rmdir "${D}${localstatedir}/run"
> +       rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
> +       install -d -o bind "${D}${localstatedir}/cache/bind"
> +       install -d "${D}${sysconfdir}/bind"
> +       install -d "${D}${sysconfdir}/init.d"
> +       install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/"
> +       install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind"
> +        if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', 
> d)}; then
> +               sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \
> +               ${D}${sbindir}/dnssec-coverage \
> +               ${D}${sbindir}/dnssec-checkds \
> +               ${D}${sbindir}/dnssec-keymgr
> +       fi
> +
> +       # Install systemd related files
> +       install -d ${D}${sbindir}
> +       install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir}
> +       install -d ${D}${systemd_unitdir}/system
> +       install -m 0644 ${WORKDIR}/named.service ${D}${systemd_unitdir}/system
> +       sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
> +              -e 's,@SBINDIR@,${sbindir},g' \
> +              ${D}${systemd_unitdir}/system/named.service
> +
> +       install -d ${D}${sysconfdir}/default
> +       install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default
> +
> +       if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 
> 'false', d)}; then
> +               install -d ${D}${sysconfdir}/tmpfiles.d
> +               echo "d /run/named 0755 bind bind - -" > 
> ${D}${sysconfdir}/tmpfiles.d/bind.conf
> +       fi
> +
> +    oe_multilib_header isc/platform.h
> +}
> +
> +CONFFILES_${PN} = " \
> +       ${sysconfdir}/bind/named.conf \
> +       ${sysconfdir}/bind/named.conf.local \
> +       ${sysconfdir}/bind/named.conf.options \
> +       ${sysconfdir}/bind/db.0 \
> +       ${sysconfdir}/bind/db.127 \
> +       ${sysconfdir}/bind/db.empty \
> +       ${sysconfdir}/bind/db.local \
> +       ${sysconfdir}/bind/db.root \
> +       "
> +
> +ALTERNATIVE_${PN}-utils = "nslookup"
> +ALTERNATIVE_LINK_NAME[nslookup] = "${bindir}/nslookup"
> +ALTERNATIVE_PRIORITY = "100"

I'm seeing this failing with busybox:
update-alternatives: Error: not linking
/development/yocto-master/build-output/work/imx8mmevk-fsl-linux/image-cmdline-validation/1.0-r0/rootfs/usr/bin/nslookup
to /bin/busybox.nosuid since
/development/yocto-master/build-output/work/imx8mmevk-fsl-linux/image-cmdline-validation/1.0-r0/rootfs/usr/bin/nslookup
exists and is not a link

busybox sets ALTERNATIVE_PRIORITY = "50". Can this be the issue?

Going back to bind 9.11.22 seems to solve it...

> +
> +PACKAGE_BEFORE_PN += "${PN}-utils"
> +FILES_${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/mdig 
> ${bindir}/nslookup ${bindir}/nsupdate"
> +FILES_${PN}-dev += "${bindir}/isc-config.h"
> +FILES_${PN} += "${sbindir}/generate-rndc-key.sh"
> +
> +PACKAGE_BEFORE_PN += "${PN}-libs"
> +FILES_${PN}-libs = "${libdir}/*.so* ${libdir}/named/*.so*"
> +FILES_${PN}-staticdev += "${libdir}/*.la"
> +
> +PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 
> 'python3-bind', '', d)}"
> +FILES_python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \
> +                ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}"
> +
> +RDEPENDS_${PN}-dev = ""
> +RDEPENDS_python3-bind = "python3-core python3-ply"
> --
> 2.17.1
>
> 



-- 
Regards,
Andrey.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#142183): 
https://lists.openembedded.org/g/openembedded-core/message/142183
Mute This Topic: https://lists.openembedded.org/mt/76558741/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to