Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 946078

Summary: net-ftp/lftp-4.9.2-r1: USE=socks5 causes configure error
Product: Gentoo Linux Reporter: OKUMURA N. Shin-ya <oku.ns>
Component: Current packagesAssignee: Conrad Kostecki <conikost>
Status: RESOLVED FIXED    
Severity: normal CC: oku.ns, uleysky
Priority: Normal    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
emerge --info
config.log
fix configuration with dante

Description OKUMURA N. Shin-ya 2024-12-08 02:38:55 UTC
net-ftp/lftp-4.9.2-r1 with USE=socks5 causes configure error, when finding libsocks, because (probably) net-proxy/dante-1.4.3 won't provide /usr/lib64/libsocks.so, but libsocks.so.0.

Reproducible: Always

Steps to Reproduce:
1. USE=socks5 emerge =net-ftp/lftp-4.9.2-r1

Actual Results:  
As follows. I'll provide build.log, later.
--
checking for main in -lsocks... no
configure: error: cannot find -lsocks library

!!! Please attach the following file when seeking support:
!!! /var/tmp/portage/net-ftp/lftp-4.9.2-r1/work/lftp-4.9.2/config.log
 * ERROR: net-ftp/lftp-4.9.2-r1::gentoo failed (configure phase):
 *   econf failed

Expected Results:  
emerge should be finished successfully.

CONTENTS of net-proxy/dante-1.4.2 in my box shows;

# fgrep libsocks /var/db/pkg/net-proxy/dante-1.4.3/CONTENTS 
sym /usr/lib64/libsocks.so.0 -> libsocks.so.0.1.1 1658163911
obj /usr/lib64/libsocks.so.0.1.1 ccf9ba7a82fe0de151ab72a5827debb8 1658163914
obj /usr/lib64/libsocksd.a 158fd5001297dc099f057cacc961599a 1731991845
sym /usr/lib64/libsocksd.so -> libsocksd.so.0.1.1 1731991843
sym /usr/lib64/libsocksd.so.0 -> libsocksd.so.0.1.1 1731991843
obj /usr/lib64/libsocksd.so.0.1.1 ca2f04f2650429e6b3148c0c995e2b5b 1731991845

I don't know whether I should fix lftp or dante.
Neither env-update nor ldconfig didn't resolve the issue.
Comment 1 OKUMURA N. Shin-ya 2024-12-08 02:39:22 UTC
Created attachment 913541 [details]
build.log
Comment 2 OKUMURA N. Shin-ya 2024-12-08 02:39:43 UTC
Created attachment 913542 [details]
emerge --info
Comment 3 Greg Kubaryk 2024-12-08 03:06:26 UTC
thanks for the report; could you please attach:

/var/tmp/portage/net-ftp/lftp-4.9.2-r1/work/lftp-4.9.2/config.log
Comment 4 OKUMURA N. Shin-ya 2024-12-08 05:33:10 UTC
Created attachment 913543 [details]
config.log
Comment 5 Michael Uleysky 2024-12-18 12:21:14 UTC
Created attachment 914336 [details, diff]
fix configuration with dante

The first part of the problem is the code in configure.ac:

if test x$with_socks = xyes; then                                                                                                                                                                                                          
   AC_DEFINE(SOCKS4, 1, [define if you are building with SOCKS support])                                                                                                                                                                   
   AC_CHECK_LIB(socks, main, [SOCKSLIBS=-lsocks],                                                                                                                                                                                          
      [AC_MSG_ERROR([cannot find -lsocks library])])                                                                                                                                                                                       
fi                                                                                                                                                                                                                                         
if test x$with_socks5 = xyes; then                                                                                                                                                                                                         
   AC_DEFINE(SOCKS5, 1, [define if you are building with SOCKSv5 support])                                                                                                                                                                 
   AC_CHECK_LIB(socks5, main, [SOCKSLIBS=-lsocks5],                                                                                                                                                                                        
      [AC_MSG_ERROR([cannot find -lsocks5 library])])                                                                                                                                                                                      
fi                                                                                                                                                                                                                                         
if test x$with_socksdante = xyes; then                                                                                                                                                                                                     
   AC_DEFINE(SOCKS_DANTE, 1, [define if you are building with SOCKS-Dante support])                                                                                                                                                        
   AC_CHECK_LIB(socks, main, [SOCKSLIBS=-lsocks],                                                                                                                                                                                          
      [AC_MSG_ERROR([cannot find -lsocks library])])                                                                                                                                                                                       
fi

AC_CHECK_LIB tries to find the main() function in the socks library, which results in a recursion error.

The second part of the problem is that on my system dante did not install the libsocks.so symlink, only libsocks.so.0, so the linker cannot find libsocks.

The proposed patch solves both problems.
Comment 6 Larry the Git Cow gentoo-dev 2024-12-29 18:22:51 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46f0106ecdc04ce7201bb08952c0469bba5da9bc

commit 46f0106ecdc04ce7201bb08952c0469bba5da9bc
Author:     Conrad Kostecki <conikost@gentoo.org>
AuthorDate: 2024-12-29 18:19:49 +0000
Commit:     Conrad Kostecki <conikost@gentoo.org>
CommitDate: 2024-12-29 18:22:40 +0000

    net-ftp/lftp: fix build with socket
    
    Closes: https://bugs.gentoo.org/946078
    Signed-off-by: Conrad Kostecki <conikost@gentoo.org>

 net-ftp/lftp/files/lftp-4.9.2-socks.patch | 26 ++++++++++++++++++++++++++
 net-ftp/lftp/lftp-4.9.2-r1.ebuild         |  1 +
 2 files changed, 27 insertions(+)