Thanks, I haven't seen your fix before sending mine. Thanks RP: please ignore my version.
On Wed, Aug 4, 2021 at 10:25 AM ChenQi <[email protected]> wrote: > Hi Martin, > > I met the same problem and sent out a similar patch. > More accurately, the problem is about 'testsdk' and 'testimage' not being > inherited in configuration. > > meta/conf/bitbake.conf:HOSTTOOLS += "${@'ip ping ps scp ssh stty' if > (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, > d) or any(x in (d.getVar(" > <$%7B@'ippingpsscpsshstty'if(bb.utils.contains_any('IMAGE_CLASSES','testimagetestsdk',True,False,d)orany(xin(d.getVar(>BBINCLUDED") > or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}" > > Best Regards, > Chen Qi > > On 08/04/2021 04:06 PM, Martin Jansa wrote: > > * otherwise fails with: > ../git/ping/meson.build:38:0: ERROR: Program or command 'ip' not found or > not executable > on hosts without ip command > > Signed-off-by: Martin Jansa <[email protected]> <[email protected]> > --- > .../0001-meson-Make-tests-optional.patch | 217 ++++++++++++++++++ > .../iputils/iputils_20210722.bb | 8 +- > 2 files changed, 222 insertions(+), 3 deletions(-) > create mode 100644 > meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch > > diff --git > a/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch > b/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch > new file mode 100644 > index 0000000000..0e47a8f047 > --- /dev/null > +++ > b/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch > @@ -0,0 +1,217 @@ > +From c50aa971b9f7bf3212c48cb271ab2b1e804aef7f Mon Sep 17 00:00:00 2001 > +From: Heiko Becker <[email protected]> <[email protected]> > +Date: Fri, 23 Jul 2021 16:32:46 +0200 > +Subject: [PATCH] meson: Make tests optional > + > +Now can be disabled with -DSKIP_TESTS=true. > + > +It allows to avoid meson error during build when ip isn't installed. > + > +Closes: #359 > + > +Reviewed-by: Petr Vorel <[email protected]> <[email protected]> > +Signed-off-by: Heiko Becker <[email protected]> <[email protected]> > +[ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust > +the description ] > +Signed-off-by: Petr Vorel <[email protected]> <[email protected]> > + > +Upstream-Status: Backport > +Signed-off-by: Martin Jansa <[email protected]> <[email protected]> > +--- > + meson_options.txt | 3 ++ > + ping/meson.build | 84 ++----------------------------------------- > + ping/test/meson.build | 81 +++++++++++++++++++++++++++++++++++++++++ > + 3 files changed, 86 insertions(+), 82 deletions(-) > + create mode 100644 ping/test/meson.build > + > +diff --git a/meson_options.txt b/meson_options.txt > +index ac5f5d9..517667f 100644 > +--- a/meson_options.txt > ++++ b/meson_options.txt > +@@ -72,3 +72,6 @@ option('INSTALL_SYSTEMD_UNITS', type: 'boolean', value: > false, > + > + option('USE_GETTEXT', type: 'boolean', value: true, > + description: 'Enable I18N') > ++ > ++option('SKIP_TESTS', type: 'boolean', value: false, > ++ description: 'Skip tests during build') > +diff --git a/ping/meson.build b/ping/meson.build > +index 1e678ec..83ea353 100644 > +--- a/ping/meson.build > ++++ b/ping/meson.build > +@@ -27,86 +27,6 @@ if (setcap_ping) > + ) > + endif > + > +-##### TESTS ##### > +- > +-# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping > -c1 ::1", it has been replaced with "_" > +- > +-# GitHub CI does not have working IPv6 > +-# https://github.com/actions/virtual-environments/issues/668 > +-ipv6_dst = [] > +-ipv6_switch = [] > +-r = run_command('ip', '-6', 'a') > +-if r.stdout().strip().contains('::1') > +- message('IPv6 enabled') > +- ipv6_dst = [ '::1' ] > +- ipv6_switch = [ '-6' ] > +-else > +- message('WARNING: IPv6 disabled') > ++if not get_option('SKIP_TESTS') > ++ subdir('test') > + endif > +- > +-run_as_root = false > +-r = run_command('id', '-u') > +-if r.stdout().strip().to_int() == 0 > +- message('running as root') > +- run_as_root = true > +-else > +- message('running as normal user') > +-endif > +- > +-foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst > +- foreach switch : [ '', '-4' ] + ipv6_switch > +- args = [ '-c1', dst ] > +- should_fail = false > +- > +- if switch != '' > +- args = [switch] + args > +- if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == > '127.0.0.1') > +- should_fail = true > +- endif > +- endif > +- > +- name = 'ping ' + ' '.join(args) > +- test(name, ping, args : args, should_fail : should_fail) > +- endforeach > +-endforeach > +- > +-ping_tests_opt = [ > +- [ '-c1' ], > +- [ '-c5', '-i0.1' ], > +- [ '-c1', '-I', 'lo' ], > +- [ '-c1', '-w1' ], > +- [ '-c1', '-W1' ], > +- [ '-c1', '-W1.1' ], > +-] > +-foreach dst : [ '127.0.0.1' ] + ipv6_dst > +- foreach args : ping_tests_opt > +- args += [ dst ] > +- name = 'ping ' + ' '.join(args) > +- test(name, ping, args : args) > +- endforeach > +-endforeach > +- > +-ping_tests_opt_fail = [ > +- [ '-c1.1' ], > +- [ '-I', 'nonexisting' ], > +- [ '-w0.1' ], > +- [ '-w0,1' ], > +-] > +-foreach dst : [ '127.0.0.1' ] + ipv6_dst > +- foreach args : ping_tests_opt_fail > +- args += [ dst ] > +- name = 'ping ' + ' '.join(args) > +- test(name, ping, args : args, should_fail : true) > +- endforeach > +-endforeach > +- > +-ping_tests_user_fail = [ > +- [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root > +-] > +-foreach dst : [ '127.0.0.1' ] + ipv6_dst > +- foreach args : ping_tests_user_fail > +- args += [ dst ] > +- name = 'ping ' + ' '.join(args) > +- test(name, ping, args : args, should_fail : not run_as_root) > +- endforeach > +-endforeach > +diff --git a/ping/test/meson.build b/ping/test/meson.build > +new file mode 100644 > +index 0000000..43aed75 > +--- /dev/null > ++++ b/ping/test/meson.build > +@@ -0,0 +1,81 @@ > ++# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping > -c1 ::1", it has been replaced with "_" > ++ > ++# GitHub CI does not have working IPv6 > ++# https://github.com/actions/virtual-environments/issues/668 > ++ipv6_dst = [] > ++ipv6_switch = [] > ++r = run_command('ip', '-6', 'a') > ++if r.stdout().strip().contains('::1') > ++ message('IPv6 enabled') > ++ ipv6_dst = [ '::1' ] > ++ ipv6_switch = [ '-6' ] > ++else > ++ message('WARNING: IPv6 disabled') > ++endif > ++ > ++run_as_root = false > ++r = run_command('id', '-u') > ++if r.stdout().strip().to_int() == 0 > ++ message('running as root') > ++ run_as_root = true > ++else > ++ message('running as normal user') > ++endif > ++ > ++foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst > ++ foreach switch : [ '', '-4' ] + ipv6_switch > ++ args = [ '-c1', dst ] > ++ should_fail = false > ++ > ++ if switch != '' > ++ args = [switch] + args > ++ if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == > '127.0.0.1') > ++ should_fail = true > ++ endif > ++ endif > ++ > ++ name = 'ping ' + ' '.join(args) > ++ test(name, ping, args : args, should_fail : should_fail) > ++ endforeach > ++endforeach > ++ > ++ping_tests_opt = [ > ++ [ '-c1' ], > ++ [ '-c5', '-i0.1' ], > ++ [ '-c1', '-I', 'lo' ], > ++ [ '-c1', '-w1' ], > ++ [ '-c1', '-W1' ], > ++ [ '-c1', '-W1.1' ], > ++] > ++foreach dst : [ '127.0.0.1' ] + ipv6_dst > ++ foreach args : ping_tests_opt > ++ args += [ dst ] > ++ name = 'ping ' + ' '.join(args) > ++ test(name, ping, args : args) > ++ endforeach > ++endforeach > ++ > ++ping_tests_opt_fail = [ > ++ [ '-c1.1' ], > ++ [ '-I', 'nonexisting' ], > ++ [ '-w0.1' ], > ++ [ '-w0,1' ], > ++] > ++foreach dst : [ '127.0.0.1' ] + ipv6_dst > ++ foreach args : ping_tests_opt_fail > ++ args += [ dst ] > ++ name = 'ping ' + ' '.join(args) > ++ test(name, ping, args : args, should_fail : true) > ++ endforeach > ++endforeach > ++ > ++ping_tests_user_fail = [ > ++ [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root > ++] > ++foreach dst : [ '127.0.0.1' ] + ipv6_dst > ++ foreach args : ping_tests_user_fail > ++ args += [ dst ] > ++ name = 'ping ' + ' '.join(args) > ++ test(name, ping, args : args, should_fail : not run_as_root) > ++ endforeach > ++endforeach > diff --git a/meta/recipes-extended/iputils/iputils_20210722.bb > b/meta/recipes-extended/iputils/iputils_20210722.bb > index c2a5bf44ea..2e4ff2e826 100644 > --- a/meta/recipes-extended/iputils/iputils_20210722.bb > +++ b/meta/recipes-extended/iputils/iputils_20210722.bb > @@ -11,8 +11,9 @@ LIC_FILES_CHKSUM = > "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390" > DEPENDS = "gnutls" > > SRC_URI = "git://github.com/iputils/iputils \ > - file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \ > - " > + file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \ > + file://0001-meson-Make-tests-optional.patch \ > +" > SRCREV = "71bb2a6c72e9f658e90ac618c73d873a76bbaa81" > > S = "${WORKDIR}/git" > @@ -38,7 +39,8 @@ PACKAGECONFIG[docs] = "-DBUILD_HTML_MANS=true > -DBUILD_MANS=true,-DBUILD_HTML_MAN > > inherit meson systemd update-alternatives > > -EXTRA_OEMESON += "--prefix=${root_prefix}/" > +# skip tests as they require ip to be installed on host > +EXTRA_OEMESON += "--prefix=${root_prefix}/ -DSKIP_TESTS=true" > > ALTERNATIVE_PRIORITY = "100" > > > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#154418): https://lists.openembedded.org/g/openembedded-core/message/154418 Mute This Topic: https://lists.openembedded.org/mt/84657546/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
