I am trying to compile flom on a RHEL 6 server and make it all the way to checking for a valid network interface. I think the error comes when you grep for MULTICAST. It fails here. ip link show is fine, but MULTICAST is not enabled (or possibly not available). Is MULTICAST necessary for flom to function?
Kind Regards,
Jason
EDIT: I removed the MULTICAST search and it compiled and I ran man, and thus far it seems okay, but before I start playing around, I want to be sure I don't need MULTICAST (and therefore I am hitting the proper network interface, in this case, lo was returned but not eth0).
Last edit: Jason Morin 2016-06-21
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dear Jason,
IP multicast does not use different header files (compile time) or different libraries (link time) if compared to IP unicast.
Build procedure (compile & link) should not use "grep" command.
Is your error related to the following command?
make check
In the event of yes, you don't have to execute it just to build and install the software: simply skip the step.
After build phase ("make" command), you can directly perform installation ("sudo make install").
"make check" is useful to check that all the built functions are running as designed, but you typically don't need that type of test for normal usage.
Alternatively, you can:
1. edit the file "tests/testsuite.at"
2. remove the "m4_include(...)" lines that include the tests related to IP multicast
3. execute "make check" without the removed case tests.
Of course, you will not be able to use the "-A" ("--multicast-address") option if your system does not have an interface configured for IPv4 and/or IPv6 multicast.
In the event of the above explanation does not apply to your issue, please post some log files of the executed commands and the produced output.
Regards
Ch.F.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the response. The error appears after the first make and isn't resolved if I modify the test file. The error is:
checking Looking for a valid network interface... configure: error: cannot find the name of a valid network interface
make: [config.status] Error 1
If I modify the config file by removing '| grep MULTICAST' it compiles and I can run flom.
Running that line in the config file on its own in bash I get nothing, if I run the same command with '| grep MULTICAST' removed the shell returns: lo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As a followup, I have flom running in a cronjob and tested both within the cron job and outside of it and both were blocked by the first process under the lock. So everything seems to working.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
AC_DEFUN([AX_NET_IFACE],[ AC_MSG_CHECKING([Looking for a valid network interface])NET_IFACE=$(iplinkshow|grepMULTICAST|grepUP|head-n1|cut-d':'-f2|tr-d[[:blank:]])iftest-z$NET_IFACEthenAC_MSG_ERROR([cannot find the name of a valid network interface])elseAC_MSG_RESULT([$NET_IFACE])fiAC_SUBST([NET_IFACE])])
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That does seem to be what was causing me issues. Line 30 specifically:
NET_IFACE=$(ip link show | grep MULTICAST | grep UP | head -n 1 | cut -d':' -f 2 | tr -d [[:blank:]])
This is found in the file 'configure' at line 17091.
I removed "grep MULTICAST" from that latter and I could compile. I will now try doing so by omitting this in the m4 test files again and see if it will compile, the first time I tried I wasn't able to but I wonder if I didn't do it correctly? We'll soon see!
EDIT: If I edit m4/ax_net_iface.m4 the error when configuring is:
'checking Looking for a valid network interface... configure: error: cannot find the name of a valid network interface'
then the script ends.
Whereas, if I instead edit configure I compile without issues. It seems to be working as well. If what I did merely means -A isn't available, that is fine. If, however, I've severely crippled flom, then that isn't good :)
Last edit: Jason Morin 2016-06-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Removing "grep MULTICAST |" from m4/ax_net_iface.m4 should work, but pay attention you have to re-create the configure script, typically you need to execute "autoconf" or something like that... In any case, after some hacking, you should obtain a "configure" script without the "grep MULTICAST |" that disturbs the building on your system.
As a more general answer, you are nor crippling flom, the source code will be the same: you are just forcing the definition of an enrironment variable that's used only to configure the test scripts.
If you don't execute the test scripts that use NET_IFACE variable, you will not encounter issues.
I have thought about some sort of parameterization, but multicast feature is a real feature of flom because it's necessary to suppot the "0 config" paradigm: in a network with multicast, you don't have to know on what system the flom daemon is executing, nice, isn't it?
So, I have found no way to void the multicast check in a consistent way, but you can bypass it hacking the "configure" script or hacking the "m4" script and creating a new "configure" script.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks, Christian. That went over my head but it does sound nice :) In this current environment, I don't have a network interface that has MULTICAST and don't have control over the hardware to request it but it sounds quite nice not to have to worry about where flom is running from.
Thanks for all your help and moving me along in understanding better, the intricacies of flom!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am trying to compile flom on a RHEL 6 server and make it all the way to checking for a valid network interface. I think the error comes when you grep for MULTICAST. It fails here. ip link show is fine, but MULTICAST is not enabled (or possibly not available). Is MULTICAST necessary for flom to function?
Kind Regards,
Jason
EDIT: I removed the MULTICAST search and it compiled and I ran man, and thus far it seems okay, but before I start playing around, I want to be sure I don't need MULTICAST (and therefore I am hitting the proper network interface, in this case, lo was returned but not eth0).
Last edit: Jason Morin 2016-06-21
Dear Jason,
IP multicast does not use different header files (compile time) or different libraries (link time) if compared to IP unicast.
Build procedure (compile & link) should not use "grep" command.
Is your error related to the following command?
In the event of yes, you don't have to execute it just to build and install the software: simply skip the step.
After build phase ("make" command), you can directly perform installation ("sudo make install").
"make check" is useful to check that all the built functions are running as designed, but you typically don't need that type of test for normal usage.
Alternatively, you can:
1. edit the file "tests/testsuite.at"
2. remove the "m4_include(...)" lines that include the tests related to IP multicast
3. execute "make check" without the removed case tests.
Of course, you will not be able to use the "-A" ("--multicast-address") option if your system does not have an interface configured for IPv4 and/or IPv6 multicast.
In the event of the above explanation does not apply to your issue, please post some log files of the executed commands and the produced output.
Regards
Ch.F.
Thanks for the response. The error appears after the first make and isn't resolved if I modify the test file. The error is:
checking Looking for a valid network interface... configure: error: cannot find the name of a valid network interface
make: [config.status] Error 1
If I modify the config file by removing '| grep MULTICAST' it compiles and I can run flom.
Running that line in the config file on its own in bash I get nothing, if I run the same command with '| grep MULTICAST' removed the shell returns: lo
As a followup, I have flom running in a cronjob and tested both within the cron job and outside of it and both were blocked by the first process under the lock. So everything seems to working.
Just to be sure, are you referring to M4 script m4/ax_net_iface.m4 ?
Hi Christian,
That does seem to be what was causing me issues. Line 30 specifically:
NET_IFACE=$(ip link show | grep MULTICAST | grep UP | head -n 1 | cut -d':' -f 2 | tr -d [[:blank:]])
This is found in the file 'configure' at line 17091.
I removed "grep MULTICAST" from that latter and I could compile. I will now try doing so by omitting this in the m4 test files again and see if it will compile, the first time I tried I wasn't able to but I wonder if I didn't do it correctly? We'll soon see!
EDIT: If I edit m4/ax_net_iface.m4 the error when configuring is:
'checking Looking for a valid network interface... configure: error: cannot find the name of a valid network interface'
then the script ends.
Whereas, if I instead edit configure I compile without issues. It seems to be working as well. If what I did merely means -A isn't available, that is fine. If, however, I've severely crippled flom, then that isn't good :)
Last edit: Jason Morin 2016-06-28
Removing "grep MULTICAST |" from m4/ax_net_iface.m4 should work, but pay attention you have to re-create the configure script, typically you need to execute "autoconf" or something like that... In any case, after some hacking, you should obtain a "configure" script without the "grep MULTICAST |" that disturbs the building on your system.
As a more general answer, you are nor crippling flom, the source code will be the same: you are just forcing the definition of an enrironment variable that's used only to configure the test scripts.
If you don't execute the test scripts that use NET_IFACE variable, you will not encounter issues.
I have thought about some sort of parameterization, but multicast feature is a real feature of flom because it's necessary to suppot the "0 config" paradigm: in a network with multicast, you don't have to know on what system the flom daemon is executing, nice, isn't it?
So, I have found no way to void the multicast check in a consistent way, but you can bypass it hacking the "configure" script or hacking the "m4" script and creating a new "configure" script.
Thanks, Christian. That went over my head but it does sound nice :) In this current environment, I don't have a network interface that has MULTICAST and don't have control over the hardware to request it but it sounds quite nice not to have to worry about where flom is running from.
Thanks for all your help and moving me along in understanding better, the intricacies of flom!