From 6f979d4906482147b913585a3b89bffaf29ca554 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 8 Aug 2021 12:35:06 +0200 Subject: [PATCH] package/iputils: disable tests Disable tests to avoid the following build failure raised since bump to version 20210722 in commit b984cba490248e6636b53b4b26b959cda5ed6f6c: ../output-1/build/iputils-20210722/ping/meson.build:38:0: ERROR: Program or command 'ip' not found or not executable Fixes: - http://autobuild.buildroot.org/results/af79d5a8a84f439f4d1d720fad2f3e197923cd4a Signed-off-by: Fabrice Fontaine Reviewed-by: Petr Vorel Signed-off-by: Thomas Petazzoni --- .../0001-meson-Make-tests-optional.patch | 218 ++++++++++++++++++ package/iputils/iputils.mk | 3 +- 2 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 package/iputils/0001-meson-Make-tests-optional.patch diff --git a/package/iputils/0001-meson-Make-tests-optional.patch b/package/iputils/0001-meson-Make-tests-optional.patch new file mode 100644 index 0000000000..e9ed1d77e8 --- /dev/null +++ b/package/iputils/0001-meson-Make-tests-optional.patch @@ -0,0 +1,218 @@ +From 3163c49f9f4ad473a00d8a345ee334a028376011 Mon Sep 17 00:00:00 2001 +From: Heiko Becker +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 +Signed-off-by: Heiko Becker +[ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust +the description ] +Signed-off-by: Petr Vorel + +[Retrieved from: +https://github.com/iputils/iputils/commit/3163c49f9f4ad473a00d8a345ee334a028376011] +Signed-off-by: Fabrice Fontaine +--- + 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 ac5f5d98..517667f4 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 1e678ec8..83ea353c 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 00000000..43aed758 +--- /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/package/iputils/iputils.mk b/package/iputils/iputils.mk index af93909edf..6e182e6a70 100644 --- a/package/iputils/iputils.mk +++ b/package/iputils/iputils.mk @@ -26,7 +26,8 @@ IPUTILS_CONF_OPTS += \ -DBUILD_RDISC_SERVER=$(if $(BR2_PACKAGE_IPUTILS_RDISC_SERVER),true,false) \ -DBUILD_TRACEPATH=$(if $(BR2_PACKAGE_IPUTILS_TRACEPATH),true,false) \ -DBUILD_TRACEROUTE6=$(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),true,false) \ - -DBUILD_NINFOD=$(if $(BR2_PACKAGE_IPUTILS_NINFOD),true,false) + -DBUILD_NINFOD=$(if $(BR2_PACKAGE_IPUTILS_NINFOD),true,false) \ + -DSKIP_TESTS=true # Selectively select the appropriate SELinux refpolicy modules IPUTILS_SELINUX_MODULES = \ -- 2.30.2