On 7/29/26 9:08 AM, Ales Musil via dev wrote: > On Wed, Jul 29, 2026 at 4:56 AM Ihar Hrachyshka <[email protected]> > wrote: > >> On Sun, Jul 26, 2026 at 3:36 PM Martin Kalčok <[email protected]> >> wrote: >> >>> Hi Ihar, >>> Thanks for the patch. This "traditional nc" vs "nmap nc" brings up >>> memories from when I first started with OVN, so I thought I'll chime >>> in. >>> >>> >> The Joy of Unix compatibility. :) >> >> >>> On Sun, Jul 26, 2026 at 8:08 PM Ihar Hrachyshka >>> <[email protected]> wrote: >>>> >>>> Nmap names and installs its netcat implementation as ncat. Its Makefile >>>> installs the ncat executable and does not create an nc link. Ubuntu and >>>> Fedora provide nc through packaging alternatives, whereas the NixOS >>>> Nmap package exposes the upstream executable name. Consequently, OVN >>>> reports HAVE_NC=no and cannot run its netcat-based system tests there. >>>> >>>> Prefer ncat when it is available and retain nc as a fallback for >> systems >>>> which provide the compatibility name or another supported netcat >>>> implementation. Route all invocations through the command selected by >>>> the feature probe. >>>> >>>> The tests use several Ncat-specific options, which is why the upstream >>>> Nmap name is the first choice rather than merely accepting whichever >>>> netcat command appears first in PATH. >>>> >>>> Assisted-by: Codex gpt-5.6-sol high >>>> Signed-off-by: Ihar Hrachyshka <[email protected]> >>>> --- >>>> tests/atlocal.in | 15 +- >>>> tests/system-common-macros.at | 10 +- >>>> tests/system-ovn-kmod.at | 90 +++---- >>>> tests/system-ovn.at | 472 >> +++++++++++++++++----------------- >>>> 4 files changed, 298 insertions(+), 289 deletions(-) >>>> >>>> diff --git a/tests/atlocal.in b/tests/atlocal.in >>>> index 2683e9a2f..40635266f 100644 >>>> --- a/tests/atlocal.in >>>> +++ b/tests/atlocal.in >>>> @@ -135,11 +135,20 @@ find_command() >>>> fi >>>> } >>>> >>>> -# Set HAVE_NC >>>> -find_command nc >>>> +# Set HAVE_NC and select the installed netcat command. >>>> +if command -v ncat > /dev/null 2>&1; then >>>> + NC=ncat >>>> + HAVE_NC=yes >>>> +elif command -v nc > /dev/null 2>&1; then >>>> + NC=nc >>>> + HAVE_NC=yes >>>> +else >>>> + NC=nc >>>> + HAVE_NC=no >>>> +fi >>> >>> As you noted above, both Ubuntu and Fedora use links via >>> "/etc/alternatives" to expose "ncat" as "nc", but they also retain the >>> "ncat" >>> >>> Ubuntu 24.04: >>> $ which ncat >>> /usr/bin/ncat >>> >>> Fedora 43: >>> $ which ncat >>> /usr/sbin/ncat >>> >>> Given that many tests rely on ncat-specific features, wouldn't it be >>> better to check only for presence of "ncat" and set `HAVE_NC=no` if it >>> doesn't exist? >>> >>> Best regards, >>> Martin. >>> >>> >> This is an interesting observation. I think OVN inherited HAVE_NC from OVS >> where actual compatibility with non-nmap nc(at) implementations was >> historically maintained (and - for what I gather from my brief reading of >> the current OVS trunk tests - still is largely retained, though there was >> some drift there too). >> >> Since then, some OVN tests have adopted unique nmap ncat features, >> disregarding compatibility with alternative `nc` implementations. >> >> So now we are here. And we have a few options: >> >> a) retain the historical generic-nc fallback, even though it no longer >> works for the entire test suite (the approach taken by this patch); or >> b) accept that the suite now effectively depends on ncat and make the >> feature check reflect the reality. >> >> Reflecting reality could mean mapping HAVE_NC to `ncat`. Or perhaps just >> run `find_command ncat` and use the resulting `HAVE_NCAT` as the feature >> flag. (Then drop `HAVE_NC` usage.) >> >> There's also a hybrid solution: try to separate tests that are still >> genuinely `nc`-compatible from those `ncat`-specific, and use both >> `HAVE_NC` and `HAVE_NCAT` in testthe suite. Whether this chore and ongoing >> maintenance of the split is worth it... I will let the maintainers decide. >> :) >> >> A lazy me would be happy to stick to the existing patch (a), a nerdy me >> would be happy to send a patch for (b) instead. Let me know what's >> preferred. >> >> Ihar >> > > Hi Ihar and Martin, >
Hi Ihar, Martin, Ales, > I'm not against switching to HAVE_NCAT instead, don't know what > do other maintainers think. While we wait for other opinions I have > merged parts of the series unrelated to netcat so we don't > have to drag it around. > Given that we already broke nc compatibility a while ago and nobody yelled at us yet, I'd say: let's go the HAVE_NCAT way. Regards, Dumitru > > >> _______________________________________________ >> dev mailing list >> [email protected] >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> >> > Regards, > Ales > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
