package/nmap: fix libssh2 test
PATCH 1/1 package/nmap: fix libssh2 test
nmap configure script adds '-lm' to the list of included headers when it runs the test that checks the presence of libssh2.h. The test fails and nmap tries to build and use bundled libssh2.
Fix the test.
Fixes:
http://autobuild.buildroot.net/results/9e636919c98cd31b5067c8306d0e481a672434cf
http://autobuild.buildroot.net/results/912561f505ad10d1eaa96dbe247d5838e9968e14
--- package/nmap/0002-fix-libssh2-test.patch | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 package/nmap/0002-fix-libssh2-test.patch
package/nmap/0002-fix-libssh2-test.patch new file +28 -0
@@ -0,0 +1,28 @@ +configure: don't put '-lm' as a header into libssh2.h test + +Signed-off-by: Max Filippov <[email protected]> + +--- nmap-7.60/configure.ac 2017-11-01 14:56:21.288413822 +0300 ++++ nmap-7.60/configure.ac.mod 2017-11-01 14:53:33.816028328 +0300 +@@ -674,7 +674,7 @@ + AC_CHECK_LIB(ssh2, libssh2_version, + [have_libssh2=yes + LIBSSH2_INC=$with_libssh2/include +- LIBSSH2_LIB=$with_libssh2/lib])],,[-lm]) ++ LIBSSH2_LIB=$with_libssh2/lib])],,) + + LDFLAGS=$_ldflags + CPPFLAGS=$_cppflags +--- nmap-7.60/configure 2017-07-31 22:09:47.000000000 +0300 ++++ nmap-7.60/configure.mod 2017-11-01 15:01:12.266068760 +0300 +@@ -6801,8 +6801,8 @@ + CPPFLAGS="-I$with_libssh2/include $CPPFLAGS" + LDFLAGS="-L$with_libssh2/lib $LDFLAGS" + +- ac_fn_c_check_header_compile "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "-lm +-" ++ ac_fn_c_check_header_compile "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "" ++ + if test "x$ac_cv_header_libssh2_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2_version in -lssh2" >&5
Signature · 1 line
2.11.0
PATCH 1/1 package/nmap: fix libssh2 test
Hi Max,
Quoted 8 lines · Max Filippov
nmap configure script adds '-lm' to the list of included headers when it runs the test that checks the presence of
libssh2.h. The test fails and nmap tries to build and use bundled libssh2.
Fix the test.Fixes:
http://autobuild.buildroot.net/results/9e636919c98cd31b5067c8306d0e481a672434cf
http://autobuild.buildroot.net/results/912561f505ad10d1eaa96dbe247d5838e9968e14
http://lists.busybox.net/pipermail/buildroot/2017-September/203407.html
I guess you hit the same problem, so your patch also touches the generated configure script.
Have you contacted upstream?
baruch
Quoted 40 lines
Signed-off-by Max Filippov <[email protected]>--- package/nmap/0002-fix-libssh2-test.patch | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 package/nmap/0002-fix-libssh2-test.patchpackage/nmap/0002-fix-libssh2-test.patch new file +28
-0@@ -0,0 +1,28 @@ +configure: don't put '-lm' as a header into libssh2.h test + +Signed-off-by: Max Filippov <[email protected]> + +--- nmap-7.60/configure.ac 2017-11-01 14:56:21.288413822 +0300 ++++ nmap-7.60/configure.ac.mod 2017-11-01 14:53:33.816028328 +0300 +@@ -674,7 +674,7 @@ + AC_CHECK_LIB(ssh2, libssh2_version, + [have_libssh2=yes + LIBSSH2_INC=$with_libssh2/include +- LIBSSH2_LIB=$with_libssh2/lib])],,[-lm]) ++ LIBSSH2_LIB=$with_libssh2/lib])],,) + + LDFLAGS=$_ldflags + CPPFLAGS=$_cppflags +--- nmap-7.60/configure 2017-07-31 22:09:47.000000000 +0300 ++++ nmap-7.60/configure.mod 2017-11-01 15:01:12.266068760 +0300 +@@ -6801,8 +6801,8 @@ + CPPFLAGS="-I$with_libssh2/include $CPPFLAGS" + LDFLAGS="-L$with_libssh2/lib $LDFLAGS" + +- ac_fn_c_check_header_compile "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "-lm +-" ++ ac_fn_c_check_header_compile "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "" ++ + if test "x$ac_cv_header_libssh2_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2_version in -lssh2" >&5
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 1/1 package/nmap: fix libssh2 test
Quoted 4 lines · Baruch Siach
http://lists.busybox.net/pipermail/buildroot/2017-September/203407.html
I guess you hit the same problem, so your patch also touches the generated configure script.
That's correct.
Quoted 1 line
Have you contacted upstream?
No.
Signature · 2 lines
Thanks. -- Max
PATCH 1/1 package/nmap: fix libssh2 test
In reply to Max FilippovHello,
Quoted 10 lines · Max Filippov
nmap configure script adds '-lm' to the list of included headers when it runs the test that checks the presence of
libssh2.h. The test fails and nmap tries to build and use bundled libssh2.
Fix the test.Fixes:
http://autobuild.buildroot.net/results/9e636919c98cd31b5067c8306d0e481a672434cf
http://autobuild.buildroot.net/results/912561f505ad10d1eaa96dbe247d5838e9968e14Signed-off-by Max Filippov <[email protected]>
I committed a different version of your patch, but based on the same idea. The main changes are:
- Instead of dropping -lm entirely, I keep it, but at the right place, i.e as the fifth argument of the AC_CHECK_LIB() call rather than as an argument of the AC_CHECK_HEADER() call.
- Instead of patching the configure script, I'm doing an autoconf (but not a full autoreconf, as that doesn't work, as you and Baruch have noticed). It is worth mentioning that Debian has a nmap patch that fixes the AC_DEFINE() issues, but then I fell into another problem:
there is no Makefile.am in the top-level source directory, and therefore automake complains. This is why I resorted to using just autoconf.
See
https://git.buildroot.org/buildroot/commit/?id=302ab5ed258c366dfc3853954ef9ec20b22661ce
for what I ended up committing.
Thanks for all the research. Could you submit the patch to upstream nmap?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com